首页 > 解决方案 > 对嵌套字典中的特定元素求和

问题描述

我有 3 个不同的包,我使用嵌套字典表示。它们的键是“bag1”、“bag2”和“bag3”,反过来,它们包含不同数量的不同颜色的球,每个颜色类别也由一个字典表示。如何最终得到一本简单地在每个包中添加所有相应颜色的字典?例如,dict1 = {'bag1': { 'red' : 2, 'blue' : 5, 'green' : 7}, 'bag2' : { 'red' : 3, 'blue': 4, 'green': 8}}。现在,我想得到另一个形式的最终字典:dict2 = { 'red' : 5, 'blue': 9, 'green': 15}. 有人可以为我提供一个功能来做到这一点吗?

标签: pythonfunctiondictionarysum

解决方案


用来list comprehensions解决这个问题 -

a=[ d.items() for d in list(dict1.values())]
my_tuples=[item for sublist in a for item in sublist]
my_set = {x[0] for x in my_tuples}
my_sums = dict([(i,sum(x[1] for x in my_tuples if x[0] == i)) for i in my_set])
print(my_sums)
    {'green': 15, 'red': 5, 'blue': 9}

输出截图


推荐阅读