我有像
这样的清单l = ['dd','rr','abcde']
l2 = ['ddf','fdfd','123']
如果l
中存在l2
的任何值,我想要一个返回true的函数。
现在也可以进行部分匹配。我的意思是该字符串应该出现在l2
编辑:
输出应该为true
在我的示例中,它应该返回true,因为dd
与ddf
答案 0 :(得分:5)
如果True
中的任何值是l
中任何值的子字符串,则返回l2
:
any(l_value in l2_value for l_value in l for l2_value in l2)
答案 1 :(得分:1)
嵌套循环:
print any(sub in full for sub in l for full in l2)
高效的嵌套循环
from itertools import product
print any(sub in full for sub, full in product(l, l2))
没有循环:
import re
print re.match('|'.join(l), ' '.join(l2))
答案 2 :(得分:0)
def match():
for e in l:
for e2 in l2:
if e in e2:
return True
else:
return False
这将包括部分匹配。
<强>更新强> 使用列表理解:
[re.search(x,",".join(l2)) for x in l if re.search(x,",".join(l2)) is not None] and 'True' or 'False'