6
votes

La boucle semble ne pas suivre la séquence

Je me sens comme si je manque quelque chose d'évident ici! xxx

sorties: xxx

tandis que cela devrait sûrement produire: xxx

Qu'est-ce qui ne va pas ici?


3 Réponses :


15
votes

Les dictionnaires ne sont pas commandés. Si vous devez compter sur la commande, vous avez besoin d'un commandaDict - il y en a un dans le module Collections dans Python 2.7, ou vous pouvez utiliser l'une des nombreuses recettes autour de.


1 commentaires

Vous voudrez peut-être également souligner qu'un ordre ordonné n'est pas un dictionnaire trié. Un ordonnancier ordonnait que conserve l'ordre dans lequel des clés ont été ajoutées.



1
votes

Pourquoi vous ne faites pas ( dictionnaire ne sont pas commandés ): xxx

EDIT: OK comme toi qui :) < / p>

La chose est dans l'expression: 'a' * s qui signifie créer une nouvelle chaîne qui contienne le temps "A".

Dans l'interprète Python, vous pouvez jouer avec elle (n'est pas python merveilleux :)) xxx

ps: si vous êtes nouveau à Python I Suggérerez que vous utilisez iPython Si vous ne l'utilisez pas encore. >


5 commentaires

Pour S dans la plage (1, Len (SEQ)): Imprimez 'A' * S


BTW pourriez-vous vous casser cela un peu pour moi, je suis nouveau à Python et ne comprenez pas le bit 'A'.


@Significance: Si vous multipliez une chaîne par un entier en Python, la chaîne est répétée à plusieurs reprises (cela fonctionne pour toute séquence de Python).


Lol - Ouais viens de travailler ça, pas exactement ce que je cherchais!


@Significance: J'espère que cela peut aider :)



5
votes

Les dictionnaires python standard ne sont pas commandés: il n'y a pas de garantie sur quelle commande les clés seront renvoyées.

Si vous souhaitez que vos clés sont renvoyées dans la commande dans laquelle vous créez des touches vous pouvez utiliser ordonnéDict à partir de collections < /a>.

alternativement, si vous souhaitez que votre sortie triée sur les valeurs des touches les suivantes feraient: xxx < / p>


1 commentaires

Egalement facile à trier par la longueur des touches pour S en tri (SEQ, Key = len): (même ordre dans ce cas cependant)