检查列表中的项是否存在于另一个列表中或不存在于python中

时间:2013-11-27 09:20:32

标签: python

有2个列表

a= [1,2,3]
b = [1,2,3]

现在我想检查a中的b元素是否存在于python 单行中。

我可以在a上使用循环,然后检查它是否存在于b中。但我想要一些pythonic方式(单行)。

3 个答案:

答案 0 :(得分:3)

bool(set(a)&set(b))ab转换为集合,然后对其应用intersection operator&)。然后bool应用于结果集,如果集合为空(没有元素是常见的),则返回False,否则True(集合为非空且具有公共元素)

不使用集合:any(True for x in a if x in b)。如果任何一个元素为真,则any()返回True,否则返回False。

答案 1 :(得分:3)

我认为你应该使用套装。这是你可以这样做的方式:

def check_element(a, b):
  return not set(a).isdisjoint(b)

答案 2 :(得分:0)

len(set(a+b)) < len(set(a)) + len(set(b))