检查两个Python集是否至少具有一个公共元素

时间:2020-04-04 14:04:31

标签: python algorithm set

检查Python中的两个集合是否至少具有一个公共元素的最快方法是什么?所需的输出是对/错。

例如我尝试使用set.intersection(),但我想避免检查两个集合中的所有元素。

set.intersection({1,2,3}, {8,9,2})
>>> {2}

注意:我正在寻找一种适用于Python集的非常有效的解决方案(我不是在询问列表)

2 个答案:

答案 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,而不是第一个匹配的元素。