Python 两本字典之和

Python 两本字典之和,python,python-3.x,Python,Python 3.x,我有两个键相同但值不同的字典: dict1 = {"a": [{"b":1, "c":1, "d":[{"e":1, "f":1}]}]} dict2 = {"a": [{"b":2, "c":2, "d":[{"e":2, "f":2}]}]} 我需要对这些字典求和,得到以下结果: res = {"a": [{"b":3, "c":3, "d":[{"e":3, "f":3}]}]} 我该怎么做呢?这里是递归方法: dict1 = {"a": [{"b":1, "c":1, "d":[{"

我有两个键相同但值不同的字典:

dict1 = {"a": [{"b":1, "c":1, "d":[{"e":1, "f":1}]}]}
dict2 = {"a": [{"b":2, "c":2, "d":[{"e":2, "f":2}]}]}
我需要对这些字典求和,得到以下结果:

res = {"a": [{"b":3, "c":3, "d":[{"e":3, "f":3}]}]}

我该怎么做呢?

这里是递归方法:

dict1 = {"a": [{"b":1, "c":1, "d":[{"e":1, "f":1}]}]}
dict2 = {"a": [{"b":2, "c":2, "d":[{"e":2, "f":2}]}]}

def add_objs(d1, d2):
    if isinstance(d1, dict):
        return {k: add_objs(d1[k], d2[k]) for k in d1}
    if isinstance(d1, list):
        return [add_objs(a, b) for a, b in zip(d1, d2)]
    return d1+d2

add_objs(dict1, dict2)
# {'a': [{'b': 3, 'c': 3, 'd': [{'e': 3, 'f': 3}]}]}

这假设
d1
d2
具有完全相同的内部结构,所有dict都具有相同的键,所有列表都具有相同的长度,等等。

您尝试了什么,它到底有什么问题?正如您所见,有些值是列表,这些列表中的一些成员也可以是列表,所以我有一些困难来解决这个问题,我会很高兴看到一些例子。这并不能回答我的问题;请注意,SO不是代码编写服务。我是新来的,实际上这是我的第一个问题。下一次我一定会发布我为解决这个问题所做的努力。谢谢