遍历字典,按求和值降序排序

我的字典是这样的...


   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]


30秒到达战场
浏览 177回答 2
2回答

缥缈止盈

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

HUWWW

使用带有排序x[0]和反向的理解print(*sorted([[k, v] for k, v in d.items()], key=lambda x: sum(x[1]), reverse = True))['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]]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python