检查字符串列表是否出现在字符串中的最短方法

Shortest way to check wether a list of strings occur in a string

我想知道检查列表中的所有字符串是否出现在另一个特定字符串中的最快或最短方法。
例如:

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

在这种情况下,我想看看Iyou是否都出现在I do like you中。有单线吗?而不是 for 循环并以传统方式手动检查一个?

使用 all() which returns a 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

您可以使用 all() 运算符,如果迭代器的每个元素都是 True 或为空,则 returns True

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

您可能会对 any() 运算符感兴趣,如果至少有一个元素是 True.

,则 returns True

我猜你想要的是单词,而不仅仅是字符串。对于此用途:

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