python循环似乎不遵循顺序?

2024-04-25 08:14:09 发布

您现在位置:Python中文网/ 问答频道 /正文

我觉得我错过了一些显而易见的东西!在

seq = {'a': ['1'], 'aa': ['2'], 'aaa': ['3'], 'aaaa': ['4'], 'aaaaa': ['5']}
for s in seq:
    print s

输出:

^{pr2}$

当然它应该输出:

a
aa
aaa
aaaa
aaaaa

这里怎么了?在

谢谢:)


Tags: inforseqaaprintaaaaaaaaaaaa
3条回答

为什么不这样做(字典未排序):

for s in range(5):
    print 'a'*s

编辑:按您的方式确定:)

它在表达式中:'a'*s这意味着创建一个包含s时间'a'的新字符串。在

在python解释器中,您可以使用它(python不是很好吗:)

^{pr2}$

PS:如果您是python新手,我建议您使用ipython,如果您还没有使用它。在

标准的Python字典没有顺序:不能保证返回键的顺序。在

如果您希望按创建键的顺序返回键,那么可以使用^{} from ^{}。在

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

for s in sorted(seq):
    print s

词典没有排序。如果您需要依赖于排序,那么您需要一个OrderedDict—在python2.7中的collections模块中有一个,或者您可以使用其中的一个。在

相关问题 更多 >