Python bucle parece no seguir la secuencia?

¡Siento que me estoy perdiendo algo obvio aquí!

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

salidas:

 a aa aaaa aaaaa aaa 

wheras seguramente debe salir:

 a aa aaa aaaa aaaaa 

que esta mal aqui

Gracias 🙂

    Related of "Python bucle parece no seguir la secuencia?"

    Los diccionarios no están ordenados. Si necesita confiar en el pedido, necesita un OrderedDict – hay uno en el módulo de collections en Python 2.7, o puede usar una de las muchas recetas que hay alrededor.

    Los diccionarios estándar de Python no están ordenados: no hay ninguna garantía de en qué orden se devolverán las claves.

    Si desea que le devuelvan sus claves en el orden en que crea las claves , puede utilizar un OrderedDict de las collections .

    Alternativamente, si desea que su salida se clasifique según los valores de las claves, lo siguiente sería:

     for s in sorted(seq): print s 

    por qué no lo haces (el diccionario no está ordenado ):

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

    Edit: ok as you que 🙂

    la cosa está en la expresión: 'a'*s que significa crear una nueva cadena que contenga s ‘a’.

    en el intérprete de python puedes jugar con él (no es python maravilloso :))

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

    PD: si eres nuevo en Python, te sugeriré que utilices ipython si aún no lo usas.