我想得到一个按其值排序的键列表,如果有任何关系,则按字母顺序排序我可以按值排序如果有关系,我会面临一些问题。
对于字典:

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']

最佳答案

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

>>> 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']

10-07 12:29