OrderedDict不保留订单

时间:2014-10-07 09:35:45

标签: python dictionary ordereddictionary

from collections import OrderedDict
import pprint

menu = {"about" : "about", "login" : "login", 'signup': "signup"}

menu = OrderedDict(menu)
pprint.pprint(menu.items())

import sys
sys.exit()

输出结果为:

[('about', 'about'), ('signup', 'signup'), ('login', 'login')]

因此,即使使用OrderedDict,订单也不会保留。我知道字典默认不保留初始订单,以及所有这些。但我想了解为什么OrderedDict无效。

2 个答案:

答案 0 :(得分:10)

通过将项目放入(无序)dict并从中构建OrderedDict,您已经放弃了原始订单。从元组列表构造OrderedDict,而不是dict。

答案 1 :(得分:0)

请在下面找到代码段

>>> from collections import OrderedDict
>>> listKeyVals = [(1,"One"),(2,"Two"),(3,"Three"),(4,"Four"),(5,"Five")]
>>> x = OrderedDict(listKeyVals)
>>> x
OrderedDict([(1, 'One'), (2, 'Two'), (3, 'Three'), (4, 'Four'), (5, 'Five')])
>>> 

我建议您阅读我的文章中的示例

https://techietweak.wordpress.com/2015/11/11/python-collections/