Kam*_*nda 3 python sorting dictionary list
我想获得按其值排序的键列表,如果有任何关系,按字母顺序排序.我可以按值排序.如果是关系,我面临着问题.
对于字典:
aDict = {'a':8, 'one' : 1, 'two' : 1, 'three':2, 'c':6,'four':2,'five':1}
Run Code Online (Sandbox Code Playgroud)
我试过这个:
sorted(aDict, key=aDict.get, reverse=True)
Run Code Online (Sandbox Code Playgroud)
这给了我:
['a', 'c', 'three', 'four', 'two', 'five', 'one']
Run Code Online (Sandbox Code Playgroud)
但我想要:
['a', 'c', 'four', 'three', 'five', 'one', 'two']
Run Code Online (Sandbox Code Playgroud)
您可以使用返回元组的键函数.如果第一个元素相等,则值将按元组的第二个元素排序.
>>> 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']
Run Code Online (Sandbox Code Playgroud)