我有n
个整数列表,表示为lst = [S1, S2, S3 ... Sn]
,我想找到所有集合的交集。
有最佳方法吗?
答案 0 :(得分:3)
如果你有一个列表集合,你可以轻而易举地获得它们的交集:
set.intersection(*lst)
这将生成一个新集合,其中只包含所有集合之间通用的值:
>>> lst = [{1, 2, 3}, {3, 5}, {2, 3}]
>>> set.intersection(*lst)
{3}
答案 1 :(得分:1)
编辑:误读,认为您有多个数字列表,并且通常会询问如何查找所有数字中存在的数字。但是,请保留下面的原始答案,因为有些人仍然认为它在某种程度上有所帮助。
是的,它被称为集合交集,可用于设置数据类型。
演示:
>>> s = set((1, 2, 3))
>>> s2 = set((2, 3, 4))
>>> s3 = set((3, 4, 5))
>>> s & s2
{2, 3}
>>> s & s2 & s3
{3}
如果您当前的数据存储在列表中,将其转换为集合只需将列表传递给set()
构造函数:
>>> numbers = [2, 7, 9, 10]
>>> set(numbers)
{2, 7, 9, 10}
请注意,如果列表包含重复项,则该信息将丢失,并且每个重复的元素将仅在结果交集中出现一次。