我正在尝试使用OrderedDict
,但是它总是被乱序创建。例如,
from collections import OrderedDict
OrderedDict(a=1,b=2,c=3)
产量
OrderedDict([('a', 1), ('c', 3), ('b', 2)])
而不是预期的
OrderedDict([('a', 1), ('b', 2), ('c', 3)])
如何确保它以我想要的正确顺序创建?
最佳答案
collections.OrderedDict
跟踪添加元素的顺序。这将在循环中正常工作:
c = collections.OrderedDict()
for a,b in zip('abc', (1,2,3)):
c[a] = b
但是,表达式
OrderedDict(a=1,b=2,c=3)
通过将几个关键字参数传递给其构造函数来创建OrderedDict
。在Python 2.7中,不能保证关键字参数的顺序。如果需要的话,您必须转到Python 3.6,该版本实现PEP 468 Preserving the order of **kwargs in a function。关于python - 不订购OrderedDict吗?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/41866911/