3

可能重复:
为什么 python 像这样订购我的字典?

为什么要在这个 dict 上迭代

d = {'tors':None,
     'head':None,
     'armr':None,
     'arml':None,
     'legl':None,     
     'legr':None}

for k in d.keys():
    print k

将以不同的顺序输出键:

head
legl
armr
arml
tors
legr
4

2 回答 2

6

在 pythondict中被实现为哈希映射,没有人不能保证键的顺序。从文档

CPython 实现细节:键和值以非随机的任意顺序列出,在 Python 实现中有所不同,并且取决于字典的插入和删除历史。

如果您需要继续订购,请collections.OrderedDict改用。

于 2012-10-25T11:07:19.830 回答
1

这应该做的工作:

import collections

ordered_d = collections.OrderedDict([('banana', 3),('apple',4),('pear', 1),('orange', 2)])
for k in ordered_d.keys():
    print k

结果:

banana
apple
pear
orange
于 2012-10-25T12:04:39.287 回答