检查Python中的两个集合是否至少具有一个公共元素的最快方法是什么?所需的输出是对/错。
例如我尝试使用set.intersection(),但我想避免检查两个集合中的所有元素。
set.intersection({1,2,3}, {8,9,2})
>>> {2}
注意:我正在寻找一种适用于Python集的非常有效的解决方案(我不是在询问列表)
答案 0 :(得分:2)
{1,2,3}.isdisjoint({4,5,6})
由于没有交集,将返回true。
答案 1 :(得分:1)
def intersect(a, b):
if len(a) > len(b):
a, b = b, a
for c in a:
if c in b:
return c
上面的代码类似于intersection( )
的实现,除了此版本返回匹配的第一个元素。如果需要,还可以返回true,而不是第一个匹配的元素。