如何在python中检查列表中是否存在任何值

时间:2013-04-22 12:02:19

标签: python list

我有像

这样的清单
l = ['dd','rr','abcde']

l2 = ['ddf','fdfd','123']

如果l中存在l2的任何值,我想要一个返回true的函数。

现在也可以进行部分匹配。我的意思是该字符串应该出现在l2

编辑:

输出应该为true

在我的示例中,它应该返回true,因为ddddf

匹配

3 个答案:

答案 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'