You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在Python中求字典值的交集?

Python字典值的交集计算

针对你给出的字典 dic={3: [2, 7, 8], 1: [7]},要得到所有值列表的交集,这里提供两种实用方法:

方法一:利用set.intersection解包操作

集合的交集操作是处理这类问题的高效方式,步骤如下:

dic = {3: [2, 7, 8], 1: [7]}
# 将每个值列表转为集合,再统一求交集
intersection = set.intersection(*(set(val) for val in dic.values()))
# 转成期望的列表格式
result = list(intersection)
print(result)  # 输出: [7]

解释:先遍历字典的所有值,把每个列表转换成集合,再用set.intersection解包这些集合,得到所有集合的交集,最后转成列表即可。

方法二:结合functools.reduce实现

如果习惯用函数式编程风格,可以用reduce逐步计算交集:

from functools import reduce

dic = {3: [2, 7, 8], 1: [7]}
# 依次对集合做交集运算
result = list(reduce(lambda a, b: a & b, (set(val) for val in dic.values())))
print(result)  # 输出: [7]

解释:reduce会把第一个集合作为初始值,依次和后续每个集合做交集运算,最终得到所有值的交集。

这两种方法都能处理字典值数量为1的情况(此时结果就是该值列表去重后的内容),若需处理空字典场景,可额外添加判断逻辑。

内容的提问来源于stack exchange,提问作者Image Privacy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.07 12:10:23