如何在同一个字典下合并两个嵌套字典

Fie*_*d.D 3 python dictionary array-merge

例如我有一本字典:

dictA={"nest1":{"01feb":[1,2,3,4,5],"02feb":[1,7,8,9,10]},
       "nest2":{"01feb":[1,2,3,4,5],"02feb":[6,4,8,10,10]}}
Run Code Online (Sandbox Code Playgroud)

里面的列表具有相同的长度.我需要将nest1nest2合并为一个字典,结果应如下所示:

dictA={"nest":{"01feb":[2,4,6,8,10],"02feb":[7,11,16,19,20]}}
Run Code Online (Sandbox Code Playgroud)

Chi*_*xus 5

您可以使用dict comprehension,map()zip()像这样的例子(与Python 2和Python 3的作品).

dictA = {'nest1': {'01feb': [1, 2, 3, 4, 5], '02feb': [1, 7, 8, 9, 10]},
 'nest2': {'01feb': [1, 2, 3, 4, 5], '02feb': [6, 4, 8, 10, 10]}}

a = (v.items() for _, v in map(list, dictA.items()))
# You can also use another map():
# final = {'nest': {k: list(map(sum, zip(v,j))) for (k, v), (_, j) in zip(*a)}}
final = {'nest': {k: [m+n for m, n in zip(v, j)] for (k, v), (_, j) in zip(*a)}}

print(final)
Run Code Online (Sandbox Code Playgroud)

输出:

{'nest': {'02feb': [7, 11, 16, 19, 20], '01feb': [2, 4, 6, 8, 10]}}
Run Code Online (Sandbox Code Playgroud)