2013-04-01 143 views
2

我按鍵排序字典,但我想顛倒順序。不過,我並沒有因爲我在網絡上看到的一些例子而感到高興。在Python 3中顛倒排序字典

這裏是何許

tempdict = collections.OrderedDict(sorted(tempdict.items())) 

現在我想:

reverse = collections.OrderedDict(tempdict.items()[::-1]) 
reverse = collections.OrderedDict(map(reversed, tempdict.items())) 

但這些都不工作。什麼是排序字典最聰明,最優雅的方式。是的,我知道,字典不是真的用於排序,但這對我們很有用。謝謝。

+0

請示出了具有一個示例 – jamylak

+2

'反向= collections.OrderedDict(列表(tempdict.items ())[:: - 1])'會起作用。 – martineau

回答

16

排序以相反的順序:

collections.OrderedDict(sorted(tempdict.items(), reverse=True)) 

要反轉現有字典:

collections.OrderedDict(reversed(list(tempdict.items()))) 
+0

當然,這和完全不同的東西有什麼不同?要麼,要麼我完全誤解了這個問題。 – NPE

+1

恩,嗯,它肯定不是*完全*不同,因爲它給出了正確的結果。但是,是的,我錯過了標題,並誤解了這個帖子。 –

+1

顯然有兩種方法可以讀取問題 - 讓我們等待OP。 –

2
>>> d = collections.OrderedDict([(1,2),(3,4),(5,6)]) 
>>> collections.OrderedDict(reversed(list(d.items()))) 
OrderedDict([(5, 6), (3, 4), (1, 2)])