如何在保持相同顺序的同时将元组转换为字典

时间:2014-09-01 02:00:33

标签: python dictionary

我有一本字典,我按值对字典进行了排序。以下是包含样本数据的代码:

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}

因此,看起来dict()方法是按键自动排序字典。但是,我想要的输出是:

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

如何获得此输出?

有人可以帮忙吗?

1 个答案:

答案 0 :(得分: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)])

当然,输出看起来不是很有意义,但它是正确的。您可以按键访问项目并按顺序迭代。