停止Python按字母顺序排序dicts中的dicts

时间:2011-11-05 15:04:43

标签: python dictionary

如果我创建一个dicts的词典

mydict = {
    'zstuff':{
        'zzz':True,
        'aaa':True
    },
    'astuff':{
        'zzz':True,
        'aaa':True
    }
}

然后使用'for'来循环dicts

for key in mydict:
    for tag in mydict[key]:
        print "{}:{}".format(key,tag)

Python输出

zstuff:aaa
zstuff:zzz
astuff:aaa
astuff:zzz

有没有办法让Python不重新排序第二级dicts?

2 个答案:

答案 0 :(得分:7)

Python不按字母顺序排序字典。事实上,它任意命令字典。如果您需要一个保留原始顺序的字典对象,请查看Python 2.7中提供的collections.OrderedDict类。

答案 1 :(得分:1)

from collections import OrderedDict

mydict = {'zstuff' : OrderedDict(zzz=True, aaa=True),
          'astuff' : OrderedDict(zzz=True, aaa=True)}