检查字符串列表是否出现在字符串中的最短方法
Shortest way to check wether a list of strings occur in a string
我想知道检查列表中的所有字符串是否出现在另一个特定字符串中的最快或最短方法。
例如:
l = ['I','you']
s = ['I do like you']
在这种情况下,我想看看I
和you
是否都出现在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)
我想知道检查列表中的所有字符串是否出现在另一个特定字符串中的最快或最短方法。
例如:
l = ['I','you']
s = ['I do like you']
在这种情况下,我想看看I
和you
是否都出现在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
.
True
我猜你想要的是单词,而不仅仅是字符串。对于此用途:
all(_ in s[0].split() for _ in l)