嵌套python字典中的项之和



我有一个嵌套的字典

mydict = {
'school1': {
'grades1': [78, 96, 80], 
'grades2' : [81, 86, 90]}, 
'school2': {
'grades3' : [60, 65, 70],
'grades4' : [67, 98, 100]}
} 

我想找到我的"分数"子字典的和,但我不太明白。我不想硬编码

sum(mydict['school1']['grades1'])

等等

'for schools in my_dict2:

print(schools)
for grades in my_dict2[schools]:
print(grades)
for values in my_dict2[schools][grades]:
print(sum(values))`

我得到了值,但是试图在这里取值的总和会导致TypeError: 'float'对象不是可迭代的

任何帮助都非常感谢!谢谢!

在python中循环字典的最简单方法是使用dict.values(),dict.keys()或其组合表兄弟dict.items()。因此,一个纯粹的for-loop实现可能看起来像这样:

sumGrades = []
for school in mydict.values():
sumGrades.append(0)
for grade in school.values():
sumGrades[-1] += sum(grade)

和转换为列表推导式:

sumGrades = [sum(sum(g) for g in s.values()) for s in mydict.values()]

最新更新