我觉得我在这里错过了一些明显的东西!
seq = {'a': ['1'], 'aa': ['2'], 'aaa': ['3'], 'aaaa': ['4'], 'aaaaa': ['5']}
for s in seq:
print s
输出:
a
aa
aaaa
aaaaa
aaa
当然应该输出:
a
aa
aaa
aaaa
aaaaa
这里出了什么问题?
谢谢:)
答案 0 :(得分:15)
不订购字典。如果你需要依赖于排序,你需要一个OrderedDict - 在Python 2.7的collections
模块中有一个,或者你可以使用众多配方中的一个。
答案 1 :(得分:5)
标准Python字典不是有序的:无法保证返回密钥的顺序。
如果您希望按照创建密钥的顺序返回密钥,则可以使用OrderedDict
from collections
。
或者,如果您希望输出按键的值排序,则可以执行以下操作:
for s in sorted(seq):
print s
答案 2 :(得分:1)
为什么不这样做(字典未订购):
for s in range(5):
print 'a'*s
编辑:确定没问题:)
表达式为'a'*s
,表示创建一个包含时间'a'的新字符串。
在python解释器中你可以玩它(不是python很棒:))
>>> print 'a'*2
aa
>>> print 'a'*3
aaa
PS:如果你是python的新手我会建议你使用ipython如果你还没有使用它。