Po przejrzeniu sekwencji (listy, krotki itp.) Kolejność jest gwarantowana. Struktury haczykowe (dict, set itp.) Mają swoje własne zamówienie - ale dla danej struktury kolejność będzie taka sama za każdym razem. Jeśli dodasz lub usuniesz element, kolejność może być inna.
Rozważmy kod folloing: Robię zestaw pięciu elementów, a następnie wydrukować go z czterech identycznych dla pętli. Kolejność jest taka sama. Następnie dodaję dwa elementy; to zakłóca porządek.
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"
wyjściowa:
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
Uwaga jak oryginalne elementy nie są już w tej samej kolejności, to: "Kolacja" teraz przychodzi po "Apple".
Tak, powinna, za każdym razem, ponieważ listy są uporządkowane. –
Jeśli przeprowadzasz iterację nad 'dict', kolejność może być inna niż oczekiwana. Dicts Pythona są nieuporządkowane. – dawg
Zobacz https://docs.python.org/2/reference/compound_stmts.html#the-for-statement – jarmod