Python - 比较两个集合列表

标签 python list intersection set

我有两个列表:

list1 = [
    set(['3105']),
    set(['3106', '3107']),
    set(['3115']),
    set(['3122']),
    set(['3123', '3126', '286'])
]

list2 = [
    set(['400']),
    set(['3115']),
    set(['3100']),
    set(['3107']),
    set(['3123', '3126'])
]

如何比较这些列表的交集,例如,如果 3126 位于两个列表的任何集合中的某个位置,它将附加另一个带有 3126 的列表。我的最终目标是附加一个单独的列表,然后获取列表的长度,以便我知道列表之间有多少匹配项。

最佳答案

你必须合并所有集合;取两个列表中集合的并集,然后取这两个并集的交集:

sets_intersection = reduce(set.union, list1) & reduce(set.union, list2)

if 3126 in sets_intersection:
    # ....

关于Python - 比较两个集合列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18086307/

相关文章:

python - 为什么以下代码的执行时间不同(numpy 数组内部实际发生了什么)?

python - 许多for在python生成器中的一行中

python - 给定一个包含多个元素的列表,如何获得完美三元组的数量?

python - 在列表中调用 'del'

javascript - 我将如何实现鞋带定理来找到由相交线创建的多个凸多边形的面积?

java - Java:将两个椭圆段的交集转换为3d空间

c# - 两个字符串数组的交集(忽略大小写)

Python 从 csv 中删除负数条目/行

python - 如何使用Python流对象?

python - 在 Python 中运行 bash 命令 : os vs subprocess?