python - 遍历 dict 按降序求和值排序
问题描述
我的字典是这样的...
d = {'clovato': [2.0, 1.0, 1.0, 1.5, 2.0], 'fnegro': [1.0, 3.0, 0.5], 'jbgood': [4.0, 4.0, 1.5, 1.5]}
所以虽然我可以计算每个键值的总和
for k,v in d.items():
print(k,sum(v))
clovato 7.5
fnegro 4.5
jbgood 11.0
我真正需要的是让键值对按总和的降序打印。在这种情况下,我希望输出为:
jbgood, [4.0, 4.0, 1.5, 1.5]
clovato, [2.0, 1.0, 1.0, 1.5, 2.0]
fnegro, [1.0, 3.0, 0.5]
解决方案
只需使用sorted
并使用sum
作为键,使用reverse
使其升序。
d = {'clovato': [2.0, 1.0, 1.0, 1.5, 2.0], 'fnegro': [1.0, 3.0, 0.5], 'jbgood': [4.0, 4.0, 1.5, 1.5]}
od = sorted(d.items(), key=lambda x: sum(x[1]),reverse=True)
for key,value in od:
print(key, value)