2016-02-10 3 views
0

Я хочу, чтобы проверить, если все слова будут найдены в другой строке без петель или итераций:Python проверить, если строка содержит все слова в Python

a = ['god', 'this', 'a'] 

sentence = "this is a god damn sentence in python" 

all(a in sentence) 

должен вернуть TRUE.

+2

это может помочь http://stackoverflow.com/questions/3389574/check-if-multiple-strings-exist-in-another-string –

ответ

2

Оно должно быть:

all(x in sentence for x in a) 

Или:

>>> chk = list(filter(lambda x: x not in sentence, a)) #Python3, for Python2 no need to convert to list 
[] #Will return empty if all words from a are in sentence 
>>> if not chk: 
     print('All words are in sentence') 
+0

, но у этого есть петля – danidee

+0

Это часть выражения 'all' ... ничего не нужно делать, но я не считаю, что это часть беспокойства OP ... поскольку он избегает какого-либо явного цикла 'for' –

4

Вы можете использовать набор зависимости от ваших конкретных нужд следующим образом:

a = ['god', 'this', 'a'] 
sentence = "this is a god damn sentence in python" 

print set(a) <= set(sentence.split()) 

Это будет печатать True, где <= есть issubset.

+0

Вы можете отказаться от' '' ', чтобы стать' set (sentence.split()), ' –

Смежные вопросы