如何检查数组中的任何字符串是否存在于另一个字符串中?
喜欢:
a = ['a', 'b', 'c']
str = "a123"
if a in str:
print "some of the strings found in str"
else:
print "no strings found in str"
该代码不起作用,它只是为了显示我想要实现的目标。
原文由 jahmax 发布,翻译遵循 CC BY-SA 4.0 许可协议
any()
是迄今为止最好的方法,如果你想要的只是 True
或 False
,但如果你的字符串/字符串想知道具体匹配哪个几件事。
如果您想要第一个匹配项(默认为 False
):
match = next((x for x in a if x in str), False)
如果您想获得所有匹配项(包括重复项):
matches = [x for x in a if x in str]
如果您想获得所有非重复匹配项(无视顺序):
matches = {x for x in a if x in str}
如果您想以正确的顺序获取所有非重复匹配项:
matches = []
for x in a:
if x in str and x not in matches:
matches.append(x)
原文由 zondo 发布,翻译遵循 CC BY-SA 3.0 许可协议
4 回答4.4k 阅读✓ 已解决
1 回答3.1k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.4k 阅读✓ 已解决
1 回答3.9k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
您可以使用
any
:与检查是否找到列表中的 所有 字符串类似,请使用
all
而不是any
。