python looping seems to not follow sequence?
我觉得我错过了一些明显的东西!
1 2 3 | seq = {'a': ['1'], 'aa': ['2'], 'aaa': ['3'], 'aaaa': ['4'], 'aaaaa': ['5']} for s in seq: print s |
输出:
1 2 3 4 5 | a aa aaaa aaaaa aaa |
当它肯定会输出:
1 2 3 4 5 | a aa aaa aaaa aaaaa |
这里怎么了?
谢谢)
字典未排序。如果您需要依赖于订单,那么您需要一个已订购的dict—在python 2.7中的
标准的python字典没有排序:不能保证返回的键的顺序。
如果您希望按创建密钥的顺序返回密钥,则可以使用来自
或者,如果要根据键的值对输出进行排序,则可以执行以下操作:
1 2 | for s in sorted(seq): print s |
为什么不这样做(字典没有排序):
1 2 | for s in range(5): print 'a'*s |
编辑:按您的意愿确定:)
表达式中的内容是:
在python解释器中,您可以使用它(python很棒吧:)
1 2 3 4 | >>> print 'a'*2 aa >>> print 'a'*3 aaa |
附言:如果你对python还不熟悉,我建议你使用i python。