我想知道最快或最短的检查列表中所有字符串是否出现在另一个特定字符串中的方法。
例如:
l = ['I','you']
s = ['I do like you']
在这种情况下,我想看看I
和you
是否都出现在I do like you
中。有单线吗?代替for循环并以传统方式手动进行检查?
答案 0 :(得分:4)
使用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
答案 1 :(得分:2)
您可以使用all()
运算符,如果Iterator的每个元素均为True
或为空,则返回True
。
l = ['I', 'you']
s = 'I do like you'
print(all(x in s for x in l))
any()
运算符可能会引起您的兴趣,如果至少一个元素为True
,该运算符将返回True
。
答案 2 :(得分:1)
我想您想要的是单词,而不仅仅是字符串。为此用途:
all(_ in s[0].split() for _ in l)