如何对嵌套字典的值求和

时间:2019-03-11 03:53:54

标签: python

我正在做一些家庭作业,我需要定义一个函数addDict(d),该函数将字典中的值加起来如下所示:

d = {'Mon':{'355':2,'451':1,'360':2},'Tue':{'451':2,'360':3},
'Thu':{'355':3,'451':2,'360':3}, 'Fri':{'355':2}, Sun':{'355':1,'451':3,'360':1}}

我很难弄清楚如何访问嵌套字典中的值,以便可以将它们加起来并返回一个字典,将这些和映射到诸如{'355':8的类。 ,'451':8,'360':9}

2 个答案:

答案 0 :(得分:5)

我可以通过将每个子字典转换为Counter对象,然后将其与sum函数一起添加。

from collections import Counter
sum(map(Counter, d.values()), Counter())
# Counter({'355': 8, '360': 9, '451': 8})

答案 1 :(得分:0)

coldspeed的答案的另一种更重量级的选择(因为您必须导入大熊猫)是将其转换为大熊猫并在行中累积总和。

import pandas as pd

pd.DataFrame(d).fillna(0).sum(1)

输出

355    8.0
360    9.0
451    8.0
dtype: float64