Обратите внимание, что в цикле for k in words
вы просто печатаете все слова, не проверяя, действительно ли они содержатся в text
.Вам также нужно split
элементы text
, чтобы проверить, содержит ли результирующий список k
.Вы хотите сделать что-то вроде:
for k in words:
if k in text.split():
print (k)
print ("word found")
Выход
is
word found
То же самое относится к начальному условию, если вы хотите сначала проверить, еслилюбые слова содержатся в text
, вам нужно разделить слова:
any(k in text.split() for k in words)
Однако обратите внимание, что, как пишет @Austin, наиболее подходящий инструмент для того, что вы пытаетесьэто sets
.Вы можете легко вычислить общие элементы на обоих наборах, вычислив пересечение следующим образом:
set(text.split()) & set(words)
# {'is'}
Узнайте больше о теме в множествах - Неупорядоченные коллекции уникальных элементов