我有一个嵌套的字典
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()]