有2个列表
a= [1,2,3]
b = [1,2,3]
现在我想检查a
中的b
元素是否存在于python 单行中。
我可以在a
上使用循环,然后检查它是否存在于b
中。但我想要一些pythonic方式(单行)。
答案 0 :(得分:3)
bool(set(a)&set(b))
将a
和b
转换为集合,然后对其应用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))