Heim > Artikel > Backend-Entwicklung > Warum ändert sich durch das Ändern der Liste „y' in Python auch die Liste „x'?
In diesem Artikel werden wir sehen, ob sich bei einer Änderung einer Liste, beispielsweise Liste Y, auch Liste X ändert. Schauen wir uns dazu zunächst ein Beispiel mit zwei Listen an und versuchen, append() und print für die Ausgabe zu verwenden -
x = [] y = x print("Value of y = ",y) print("Value of x = ",x) y.append(25) print("\nAfter changing...") print("Value of y = ",y) print("Value of x = ",x)
('Value of y = ', []) ('Value of x = ', []) After changing... ('Value of y = ', [25]) ('Value of x = ', [25])
Oben haben wir gesehen, dass durch die Aktualisierung der Liste y auch die Liste x geändert wird.
Wir sehen das obige Ergebnis, weil −
Wenn Sie oben y = x schreiben, wird keine Kopie der Liste erstellt. Es erstellt eine neue Variable y, die auf dasselbe Objekt verweist wie x. Das heißt, es gibt nur ein Objekt, die Liste, und sowohl x als auch y verweisen darauf.
Wenn append() aufgerufen wird, ändert sich der Inhalt des Variablenobjekts von [] auf [25]. Da beide Variablen auf dasselbe Objekt verweisen, kann mit beiden Variablen auf den geänderten Wert zugegriffen werden [25].
Angenommen, wir weisen x ein unveränderliches Objekt zu, dann sind x und y nicht mehr gleich. Dies liegt daran, dass ganze Zahlen unveränderlich sind -
Die chinesische Übersetzung von# ints are immutable x = 5 y = x print("Value of y = ",y) print("Value of x = ",x) # We are creating a new object x = x + 1 print("\nAfter changing...") print("Value of y = ",y) print("Value of x = ",x)
('Value of y = ', 5) ('Value of x = ', 5) After changing... ('Value of y = ', 5) ('Value of x = ', 6)
Wenn wir x = x + 1 schreiben, ändern wir den int 5 nicht, indem wir seinen Wert erhöhen. Stattdessen erstellen wir ein neues Objekt (int 6) und weisen es x zu. Nach dieser Zuweisung haben wir zwei Objekte (int 6 und 5) und zwei Variablen, die auf sie verweisen.
Daher
Veränderliche Objekte − Wenn wir ein veränderliches Objekt wie eine Liste, ein Wörterbuch, eine Menge usw. haben, können wir es mit bestimmten Operationen ändern, und alle Variablen, die darauf verweisen, werden diese Änderung sehen.
Immutable Object − Wenn wir ein unveränderliches Objekt wie str, int, tuple usw. haben, sehen alle Variablen, die darauf verweisen, immer denselben Wert, aber Operationen, die diesen Wert in einen neuen Wert konvertieren, geben immer ein neues Objekt zurück .
Das obige ist der detaillierte Inhalt vonWarum ändert sich durch das Ändern der Liste „y' in Python auch die Liste „x'?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!