我有一个名为keywords
的字符串列表:
keywords = ["123", "hello there"]
我想看看列表strArr
中是否有这些字符串:
strArr = ["123", "hello there", "another"]
我已经尝试过了:
if all (keyword in strArr for keyword in keywords):
print("True")
else:
print("False")
如果我有完整的字符串,它可以工作并返回true,但是当我尝试找到这样的子字符串时失败:
keywords = ["123", "hello"]
答案 0 :(得分:2)
任何时候只要您有几组东西并且正在测试成员资格/交叉口等,就应该考虑使用sets
。开始后,这非常容易。
请参见以下示例:
In [46]: keywords = {"123", "hello there"}
In [47]: strArr = {"123", "hello there", "another"}
In [48]: keywords & strArr # intersection
Out[48]: {'123', 'hello there'}
In [49]: keywords.issubset(strArr)
Out[49]: True
In [50]: if (keywords & strArr): # do something
在最后一行中,如果intersection
中包含任何内容,则该值为True
,否则为False
。
答案 1 :(得分:1)
您可以检查每个关键字是否在 strArr 中的任何项中 :
print( all ( any( (keyword in strItem for strItem in strArr) ) for keyword in keywords ))
注意:如果您要检查条件并打印结果,则可以只打印条件本身。
答案 2 :(得分:1)
许多人已经回答了这个问题。自从我尝试了之后,我就会发布我的答案。
http://www.bellator.com/events/d306b5/bellator-newcastle-pitbull-vs-scope
http://www.bellator.com/events/ylcu8d/bellator-215-mitrione-vs-kharitonov
http://www.bellator.com/events/yk2djw/bellator-216-mvp-vs-daley
http://www.bellator.com/events/e8rdqs/bellator-217-gallagher-vs-graham
http://www.bellator.com/events/281wxq/bellator-218-sanchez-vs-grimshaw
http://www.bellator.com/events/8lcbdi/bellator-219-koreshkov-vs-larkin
http://www.bellator.com/events/9rqguc/bellator-macdonald-vs-fitch
我希望这很重要。 :)