首页 > 解决方案 > 如何按降序对字典的值进行排序,并按字母顺序对键进行排序

问题描述

我们如何按降序对字典中的值进行排序,如果有两个相似的值,则按字母顺序对这些值的键进行排序?

像下面的例子:

Input = {'robert':13, 'walter':17, 'andrew':16, 'adrian':16, 'simon':15, 'santiago':15} 
Output = {'walter':17, 'adrian':16, 'andrew':16, 'santiago':15, 'simon':15}

标签: pythonsortingdictionary

解决方案


您可以使用sorted和设置您想要的密钥,如下所示:

(这里首先要排序descendingvalue然后排序ascending是否key值相等)

>>> dct = {'robert':13, 'walter':17, 'andrew':16, 'adrian':16, 'simon':15, 'santiago':15}

>>> dict(sorted(dct.items(), key=lambda x: (-x[1],x[0])))
{'walter': 17,
 'adrian': 16,
 'andrew': 16,
 'santiago': 15,
 'simon': 15,
 'robert': 13}

推荐阅读