2014-09-01 55 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)]) 

当然,输出看起来不太有意义,但它是正确的。您可以按键访问项目,然后按顺序遍历对。

相关问题