代码之家  ›  专栏  ›  技术社区  ›  significance

python循环似乎不遵循顺序?

  •  3
  • significance  · 技术社区  · 14 年前

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

    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
    

    这里出什么事了?

    3 回复  |  直到 14 年前
        1
  •  15
  •   Daniel Roseman    14 年前

    字典没有订。如果你需要依赖于订单,你需要一个订单-有一个在 collections 在Python2.7中的模块,或者您可以使用周围许多食谱中的一个。

        2
  •  5
  •   David Webb    14 年前

    如果你想按顺序归还钥匙 在其中创建关键点 OrderedDict from collections .

    或者,如果您希望输出按 键的值

    for s in sorted(seq):
        print s
    
        3
  •  1
  •   mouad    14 年前

    为什么你不这么做( ):

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

    这句话的意思是: 'a'*s 这意味着创建一个包含s时间“a”的新字符串。

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

    >>> print 'a'*2
    aa
    >>> print 'a'*3
    aaa 
    

    ipython 如果你还没用的话。