Кратчайший способ проверить, находится ли список строк в строке - PullRequest
1 голос
/ 16 мая 2019

Я хотел бы знать самый быстрый или самый короткий способ проверить, все ли строки в списке встречаются в другой конкретной строке.
Например:

l = ['I','you']
s = ['I do like you']

в этом случае я бы хотелчтобы увидеть, есть ли I и you в I do like you.Есть ли однострочник?Вместо цикла for и проверки вручную, традиционным способом?

Ответы [ 3 ]

4 голосов
/ 16 мая 2019

Используйте all(), который возвращает True, если все элементы итерируемого являются правдивыми или иначе False:

all(x in s[0] for x in l)

В код :

l = ['I','you']
s = ['I do like you']

print(all(x in s[0] for x in l))
# True
2 голосов
/ 16 мая 2019

Вы можете использовать оператор all(), который возвращает True, если каждый элемент Итератора равен True или если он пуст.

l = ['I', 'you']
s = 'I do like you'
print(all(x in s for x in l))

Вас может заинтересовать оператор any(), который возвращает True, если хотя бы один элемент равен True.

1 голос
/ 16 мая 2019

Полагаю, вам нужны слова, а не только строки.Для этого используйте:

all(_ in s[0].split() for _ in l)

...