2014-09-01 78 views
0

我有一本字典,並按值排序字典。以下是代碼示例數據:如何將元組轉換爲字典,同時保持相同的順序

mydict = {'b':4, 'a':1, 'd':8, 'c':10} 

現在,我想解決這由函數值降序排列,因此,我用下面的代碼:

sorted_dict = sorted(mydict.iteritems(), key = operator.itemgetter(1), reverse = True) 

當我打印sorted_dict,我得到一個元組列表:

sorted_dict 
[('c', 10), ('d', 8), ('b', 4), ('a', 1)] 

但是,我想要這個字典的形式。所以我用下面的代碼:

dict(sorted_dict) 

,並得到以下結果:

{'a': 1, 'c': 10, 'b': 4, 'd': 8} 

所以,它看起來像字典()方法是通過鍵自動分揀字典。但是,我的期望輸出是:

{'c':10, 'd':8, 'b':4, 'a':1} 

如何獲得此輸出?

有人可以幫忙嗎?

回答

3

您不能使用常規dict,這不是開始的有序集合。然而,collections.OrderedDict是!

>>> from collections import OrderedDict 
>>> d = OrderedDict([('c', 10), ('d', 8), ('b', 4), ('a', 1)]) 
>>> d 
OrderedDict([('c', 10), ('d', 8), ('b', 4), ('a', 1)]) 

當然,輸出看起來不太有意義,但它是正確的。您可以按鍵訪問項目,然後按順序遍歷對。

相關問題