python循环似乎不遵循序列?

sig*_*nce 3 python dictionary for-loop list

我觉得我在这里错过了一些明显的东西!

seq = {'a': ['1'], 'aa': ['2'], 'aaa': ['3'], 'aaaa': ['4'], 'aaaaa': ['5']}
for s in seq:
    print s
Run Code Online (Sandbox Code Playgroud)

输出:

a
aa
aaaa
aaaaa
aaa
Run Code Online (Sandbox Code Playgroud)

当然它应该输出:

a
aa
aaa
aaaa
aaaaa
Run Code Online (Sandbox Code Playgroud)

这里出了什么问题?

谢谢 :)

Dan*_*man 15

字典不是订购的.如果您需要依赖于排序,您需要一个OrderedDict - collections在Python 2.7 的模块中有一个,或者您可以使用众多配方中的一个.


Dav*_*ebb 5

标准Python字典不是有序的:无法保证返回密钥的顺序.

如果您希望按照创建密钥的顺序返回密钥,则可以使用OrderedDictfromcollections.

或者,如果您希望输出按键排序,则可以执行以下操作:

for s in sorted(seq):
    print s
Run Code Online (Sandbox Code Playgroud)