如何在python中按键组合两个dict?

How to combine two dicts by key in python?

本问题已经有最佳答案,请猛点这里访问。

我有两个这样的口述:

DICT-1:

1
{A:{'a1':10,'a2':20},B:{'b1':10,'b2':20}}

DICT-2:

1
{A:{'a3':30},B:{'b3':30},C:{'c1':100}}

我想以这种方式组合它们:

1
{A:{'a1':10,'a2':20,'a3':30},B:{'b1':10,'b2':20,'b3':30},C:{'c1':100}}


迭代解可以是:

1
2
3
4
5
6
7
d1 = {'A':{'a1':10,'a2':20},'B':{'b1':10,'b2':20}}
d2 = {'A':{'a3':30},'B':{'b3':30},'C':{'c1':100}}

d3 = {}
for d in [d1, d2]:
    for k, v in d.items():
        d3.setdefault(k, {}).update(v)

结果在

1
d3 = {'A': {'a1': 10, 'a3': 30, 'a2': 20}, 'C': {'c1': 100}, 'B': {'b1': 10, 'b2': 20, 'b3': 30}}

但它不会从共享密钥中求和值!