Проверьте подстроку совпадения слова в списке слов

Я хочу проверить, есть ли слово в списке слов.

word = "with" word_list = ["without", "bla", "foo", "bar"] 

Я попробовал, if word in set(list) , но оно не дает желаемого результата из-за того, что in строке соответствует строка, а не элемент. То есть "with" является совпадением в любом из слов в word_list но все же, if "with" in set(list) будет говорить « True .

Что является более простым способом для выполнения этой проверки, чем вручную перебирать list ?

3 Solutions collect form web for “Проверьте подстроку совпадения слова в списке слов”

Вы можете сделать:

 found = any(word in item for item in wordlist) 

Он проверяет каждое слово для соответствия и возвращает true, если есть совпадения

in работает как ожидалось для точного соответствия :

 >>> word = "with" >>> mylist = ["without", "bla", "foo", "bar"] >>> word in mylist False >>> 

Вы также можете использовать:

 milist.index(myword) # gives error if your word is not in the list (use in a try/except) 

или

 milist.count(myword) # gives a number > 0 if the word is in the list. 

Однако, если вы ищете подстроку , тогда:

 for item in mylist: if word in item: print 'found' break 

btw, dont использовать list для имени переменной

Вы также можете создать одну строку поиска, объединив все слова в word_list в одну строку:

 word = "with" word_list = ' '.join(["without", "bla", "foo", "bar"]) 

Тогда простой тест будет выполнять эту работу:

 return word in word_list 
  • Как избежать разрыва строки, уже присутствующего в строке?
  • Как преобразовать список в строку
  • Проверьте, заканчивается ли строка одной из строк из списка.
  • Как преобразовать список строк в целое число в python
  • Операция строки Python, извлечение текста между html-тегами
  • превратить смешанный список в строку, сохранить кавычки только для строк
  • Почему «www» .count («ww») возвращает 1, а не 2?
  • Как отформатировать плавающее число до фиксированной ширины в Python
  • Python - лучший язык программирования в мире.