Wenn Sie über eine Sequenz (Liste, Tupel usw.) iterieren, ist die Reihenfolge garantiert. Hash-Strukturen (dict, set usw.) haben ihre eigene Reihenfolge - aber für eine gegebene Struktur ist die Reihenfolge jedes Mal gleich. Wenn Sie ein Element hinzufügen oder löschen, ist die Reihenfolge möglicherweise anders.
Betrachten Sie den Code folloing: Ich habe eine Reihe von fünf Elementen machen, und es dann mit vier identischen für Schleifen ausdrucken. Die Reihenfolge ist die gleiche. Dann füge ich zwei Elemente hinzu; Das stört die Reihenfolge.
my_set = set(["Apple", "Banana", "Casaba", "Dinner", "Eggplant"])
for food in my_set:
print food,
print "\n"
for food in my_set:
print food,
print "\n"
for food in my_set:
print food,
print "\n"
for food in my_set:
print food,
print "\n"
my_set.add("Fruitcacke")
my_set.add("Grape")
for food in my_set:
print food,
print "\n"
Ausgang:
Casaba Dinner Apple Eggplant Banana
Casaba Dinner Apple Eggplant Banana
Casaba Dinner Apple Eggplant Banana
Casaba Dinner Apple Eggplant Banana
Casaba Fruitcacke Grape Apple Dinner Eggplant Banana
Hinweis, wie die ursprünglichen Elemente sind nicht mehr in der gleichen Reihenfolge: "Abendessen" jetzt kommt nach "Apple".
Ja, es sollte jedes Mal, da Listen bestellt werden. –
Wenn Sie über ein "Diktat" iterieren, kann die Reihenfolge anders als erwartet sein. Python dicts sind ungeordnet. – dawg
Siehe https://docs.python.org/2/reference/compound_stmts.html#the-for-statement – jarmod