test_string = ("this is a test")
test_list = [dog, cat, test, is, water]
Как узнать, есть ли 'this' или 'is' или 'a' или 'test' в test_list?Как проверить, являются ли слова в строке элементами в списке или списках?
test_string = ("this is a test")
test_list = [dog, cat, test, is, water]
Как узнать, есть ли 'this' или 'is' или 'a' или 'test' в test_list?Как проверить, являются ли слова в строке элементами в списке или списках?
Используйте str.split разбить строку и использовать any, чтобы увидеть, если какой-либо из слов в строке в списке:
test_string = ("this is a test")
test_list = ["dog", "cat", "test", "is","water"]
print(any(x in test_list for x in test_string.split()))
In [9]: test_string = ("this is a test")
In [10]: test_string.split()
Out[10]: ['this', 'is', 'a', 'test'] # becomes a list of individual words
Вы можете использовать any
для этого
inlist = any(ele in test_list for ele in test_string.split())
inlist
будет True или False, в зависимости от того, находится ли он в списке.
Пример:
>>test_string = ("this is a test")
>>test_list = ['dog', 'cat', 'water']
>>inlist = any(ele in test_string for ele in test_list)
>>print inlist
False
>>test_string = ("this is a test")
>>test_list = ['dog', 'cat', 'is', 'test' 'water']
>>inlist = any(ele in test_string for ele in test_list)
>>print inlist
True
nope, вы повторяете каждый символ не каждое слово –
Я перебираю каждый элемент в списке и проверяю его вообще. – Parker
try 's =" this test "print (" th "in s)' –
Что вы спрашиваете только ли непустое множество пересечений.
>>> set(test_string.split(' ')).intersection(set(test_list))
set(['test', 'is'])
Одним из вариантов является регулярное выражение, например
import re
# Test string
test_string = 'this is a test'
# Words to be matched
test_list = ['dog', 'cat', 'test', 'is', 'water']
# Container for matching words
yes = []
# Loop through the list of words
for words in test_list:
match = re.search(words, test_string)
if match:
yes.append(words)
# Output results
print str(yes) + ' were matched'
#['test', 'is'] were matched
возможно дубликат [Как проверить, если строка содержит элемент из списка в Python] (http://stackoverflow.com/questions/6531482/how-to-check-if-a-string-contains-an-element-from-a-list-in-python) – Parker
не должен тестировать_list = [собака, кот, тест, есть, вода] скорее быть test_list = ['dog', 'cat', 'test', 'is', 'water']? – tagoma
Да, я торопился, что часто делаю эту ошибку. –