首页 > 解决方案 > 合并来自不同字典的值

问题描述

假设我有 2 个字典:

dict_a = {'01A': 'X', '02B': 'V', '03C': 'AE'}
dict_b = {'01A': 'V', '02B': 'D', '03C': 'X'}

它们本质上具有相同的键。我想要的是这样的:

dict_c = {'01A': ['X', 'V'], '02B': ['V', 'D'], '03C': ['AE', 'X']}

这样做的正确方法是什么?

标签: listdictionarypython-3.6

解决方案


有很多方法可以实现这一目标,其中一种可以使用defaultdict类似collections这样的方法。

from collections import defaultdict
dict_a = {'01A': 'X', '02B': 'V', '03C': 'AE'}
dict_b = {'01A': 'V', '02B': 'D', '03C': 'X'}
d = defaultdict(list)
for d1, d2 in dict_a.items() + dict_b.items():
    d[d1].append(d2)
print(dict(d))

推荐阅读