我希望获得按其值排序的键列表,如果有任何关系,则按字母顺序排序。我可以按值排序。如果有关系,我会面临问题。
字典:
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']
答案 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']