奇怪的字典迭代顺序

Eži*_*ulį 2 python dictionary

可能重复:
为什么python会这样排序我的字典?

我有这个完全正常工作的代码,但它的行为很奇怪:字典中的项目不是按顺序迭代,而是以某种方式随机迭代,为什么会这样?:

#!/usr/bin/python

newDict = {}
lunar = {'a':'0','b':'0','c':'0','d':'0','e':'0','f':'0'}
moon = {'a':'1','d':'1','c':'1'}

for il, jl in lunar.items():
    print "lunar: " + il + "." + jl 
    for im, jm in moon.items():
        if il == im:
            newDict[il] = jm
            break
        else:
            newDict[il] = jl

print newDict
Run Code Online (Sandbox Code Playgroud)

输出:

lunar: a.0
lunar: c.0
lunar: b.0
lunar: e.0  
lunar: d.0
lunar: f.0
{'a': '1', 'c': '1', 'b': '0', 'e': '0', 'd': '1', 'f': '0'}
Run Code Online (Sandbox Code Playgroud)

ale*_*sel 5

字典不保存输入顺序.您可以OrderedDict从集合模块 - OrderedDict示例和配方中尝试类