如何将字典转换为按其值排序的键列表?

时间:2016-03-09 08:23:11

标签: python list sorting dictionary

我希望获得按其值排序的键列表,如果有任何关系,则按字母顺序排序。我可以按值排序。如果有关系,我会面临问题。

字典:

aDict = {'a':8, 'one' : 1, 'two' : 1, 'three':2, 'c':6,'four':2,'five':1}

我试过这个:

sorted(aDict, key=aDict.get, reverse=True)

给了我:

['a', 'c', 'three', 'four', 'two', 'five', 'one']

但我想:

['a', 'c', 'four', 'three', 'five', 'one', 'two']

1 个答案:

答案 0 :(得分:5)

您可以使用返回元组的键功能。如果第一个元素相等,则值将按元组的第二个元素排序。

>>> aDict = {'a':8, 'one' : 1, 'two' : 1, 'three':2, 'c':6,'four':2,'five':1}
>>> sorted(aDict, key=lambda x: (-aDict[x], x))
['a', 'c', 'four', 'three', 'five', 'one', 'two']