Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/297.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 循环似乎没有遵循顺序_Python_List_Dictionary_For Loop - Fatal编程技术网

Python 循环似乎没有遵循顺序

Python 循环似乎没有遵循顺序,python,list,dictionary,for-loop,Python,List,Dictionary,For Loop,我觉得我错过了一些明显的东西 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 这里出了什么问题?字典没有订购。如果您需要依赖于排序,那么您需要一个OrderedDict-在Python 2.7的集合模块中有一个,或者您可以使用

我觉得我错过了一些明显的东西

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

这里出了什么问题?

字典没有订购。如果您需要依赖于排序,那么您需要一个OrderedDict-在Python 2.7的
集合
模块中有一个,或者您可以使用许多方法中的一个。

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

编辑:根据需要确定:)

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

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


PS:如果您是python新手,我建议您在不使用python的情况下使用它。

标准python字典没有排序:无法保证键返回的顺序

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

或者,如果希望根据键的值对输出进行排序,请执行以下操作:

for s in sorted(seq):
    print s

重复和范围(1,len(seq))内的s:打印'a'*sbtw你能帮我把它分解一下吗,我是python新手&不理解'a'*s位。@意义:如果在python中用一个整数乘以一个字符串,该字符串会重复那么多次(这对python中的任何序列都有效)。哈哈-是的,刚刚解决了这个问题,不完全是我要找的@意义:希望这能有所帮助:)你可能还想指出,OrderedDict并不是一本分类词典。OrderedDict仅保留添加键的顺序。对于已排序(seq,key=len)中的s,还可以根据键的长度轻松排序:
(但在本例中顺序相同)
>>> print 'a'*2
aa
>>> print 'a'*3
aaa 
for s in sorted(seq):
    print s