Python:按照插入项目的顺序迭代dict

时间:2015-09-22 17:18:08

标签: python dictionary ordereddictionary

d = { 'c' : 1, 'f': 2, 'a': 3}

for key, value in d.iteritems():
    print key

我希望能够按照插入顺序迭代键。

我已经看过将dict转换为OrderedDict,但它们似乎有某种顺序(不是它们的插入顺序)

有没有一种简单的方法可以将dict转换为OrderedDict,从而保持插入顺序?

1 个答案:

答案 0 :(得分:3)

您不应该将dict转换为OrderedDict,而应首​​先使用OrderedDict

from collections import OrderedDict

od = OrderedDict()
od['c'] = 1
od['f'] = 2
od['a'] = 3

或者通常更容易,从OrderedDict元组或list tuple创建tuples

od = OrderedDict([('c', 1), ('f', 2), ('a', 3)])

dict转换为OrderedDict的问题是,只要您创建dict或向其中添加任何内容,订单就会丢失。因此,如果您需要保留订单,则根本无法使用dict