2016-03-09 71 views
3

我想獲得按其值排序的鍵列表,以及任何關係的情況下,按字母順序排序。我可以按值排序。如果有關係,我正面臨問題。如何將字典轉換爲按其值排序的按鍵列表?

的詞典:

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

回答

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