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

如何用Python合并两个字典并对不存在的键补0

解法1:直接遍历所有键的并集(最易理解,适合新手)

核心用到字典的get方法,不存在的键直接返回默认值0,代码如下:

d1 = {'a':2, 'b':4}
d2 = {'a':13, 'b':3, 'c':5}

# 取两个字典的所有不重复键
all_keys = d1.keys() | d2.keys()
# 每个键分别从两个字典取值,不存在补0
result = {key: [d1.get(key, 0), d2.get(key, 0)] for key in all_keys}
print(result)

运行输出即为你要的结果:{'a': [2, 13], 'b': [4, 3], 'c': [0, 5]}

解法2:支持多字典扩展的defaultdict写法

如果你后续可能需要合并更多字典,推荐这个扩展性更强的写法,对原有的defaultdict逻辑调整如下:

from collections import defaultdict

d1 = {'a':2, 'b':4}
d2 = {'a':13, 'b':3, 'c':5}
# 要合并的字典都放这个列表里,后续加字典直接往列表塞就行
dict_list = [d1, d2]
dict_count = len(dict_list)

# 初始化每个键的默认值为长度等于字典数量的全0列表
dd = defaultdict(lambda: [0]*dict_count)

for idx, d in enumerate(dict_list):
    for key, val in d.items():
        # 对应位置替换成实际值,没出现的位置保留0
        dd[key][idx] = val

result = dict(dd)
print(result)

内容的提问来源于stack exchange,提问作者Tony Stark

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.10 06:15:02