Rozwiązany
Zmieniłem kopię listy, a zmieniła się też oryginalna
Autor
a = [1, 2, 3]
b = a
b[0] = 99
print(a) # [99, 2, 3]a = [1, 2, 3]
b = a
b[0] = 99
print(a) # [99, 2, 3]
Komentarze 5
Zaloguj się, żeby dołączyć do dyskusji.
Zaloguj się Załóż kontob = anie kopiuje listy, tylko daje jej drugą nazwę. Obie zmienne wskazują ten sam obiekt.Kopia:
b = a.copy()albob = a[:]albob = list(a).Aha, czyli to te "etykiety" z przykładu o typowaniu dynamicznym!
Dla list zagnieżdżonych potrzebna jest głęboka kopia:
import copy; b = copy.deepcopy(a).Dobra uwaga,
.copy()kopiuje tylko pierwszy poziom.To samo dzieje się, gdy przekazujesz listę do funkcji. Funkcja może zmienić listę wywołującego.