python - 在 python 中获取 N-many 列表的交集

标签 python list numpy scipy

在 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/

相关文章:

python - 为什么 Bearer 在请求授权 header 中不起作用?

python - 使用 boto3 过滤 s3 对象,以便调用者不过滤

python - 在给定阈值内提取高度相关变量的最佳方法是什么

python - 使用 python 在文件中搜索回文并将其打印在列表中

python - 使用seaborn和FacetGrid进行绘图,其中值是数据框中的ndarray

python - C++ 到 numpy 再回到 C++,元组 PyObject

python - 南迁移期间 Django GenericRelation 字段不可用

python - 为多类道路分割实现 U-net

python - 连接多个数据帧

java - for 循环在第一次迭代中停止