在 python 中获取 N-many 列表的交集的最简单方法是什么?
如果我有两个列表 a 和 b,我知道我可以这样做:
a = set(a)
b = set(b)
intersect = a.intersection(b)
但我想对任意一组列表执行类似 a & b & c & d & ... 的操作(理想情况下无需先转换为一组,但如果这是最简单/最有效的方法,我可以处理那个。)
即我想编写一个函数 intersect(*args) 来有效地处理任意多个集合。最简单的方法是什么?
编辑:我自己的解决方案是 reduce(set.intersection, [a,b,c]) —— 这样好吗?
谢谢。
最佳答案
这适用于 1 个或多个列表。 0 列表的情况并不那么容易,因为它必须返回一个包含所有可能值的集合。
def intersection(first, *others):
return set(first).intersection(*others)
关于python - 在 python 中获取 N-many 列表的交集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2953280/