首页 > 解决方案 > 遍历 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]

标签: python

解决方案


只需使用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)

推荐阅读