【问题标题】:Check if two Python sets have at least one common element检查两个 Python 集是否至少有一个共同元素
【发布时间】:2020-04-04 14:04:31
【问题描述】:

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

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

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

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

【问题讨论】:

标签: python algorithm set


【解决方案1】:

{1,2,3}.isdisjoint({4,5,6}) 将返回 true,因为没有交集。

【讨论】:

    【解决方案2】:
    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,而不是第一个匹配的元素。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-04
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多