我正在做一些家庭作业,我需要定义一个函数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}
答案 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