可能重复:
为什么 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
可能重复:
为什么 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
在 pythondict
中被实现为哈希映射,没有人不能保证键的顺序。从文档
CPython 实现细节:键和值以非随机的任意顺序列出,在 Python 实现中有所不同,并且取决于字典的插入和删除历史。
如果您需要继续订购,请collections.OrderedDict
改用。
这应该做的工作:
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