Heim > Backend-Entwicklung > Python-Tutorial > Warum ändert sich durch das Ändern der Liste „y' in Python auch die Liste „x'?

Warum ändert sich durch das Ändern der Liste „y' in Python auch die Liste „x'?

WBOY
Freigeben: 2023-08-20 11:25:14
nach vorne
1546 Leute haben es durchsucht

Warum ändert sich durch das Ändern der Liste „y in Python auch die Liste „x?

Beispiel

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)
Nach dem Login kopieren

Ausgabe

('Value of y = ', [])
('Value of x = ', [])

After changing...
('Value of y = ', [25])
('Value of x = ', [25])
Nach dem Login kopieren

Oben haben wir gesehen, dass durch die Aktualisierung der Liste y auch die Liste x geändert wird.

Wir sehen das obige Ergebnis, weil −

  • Listen sind veränderbar, d. h. Sie können ihren Inhalt ändern.
  • Variablen sind Namen, die auf Objekte verweisen.

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

Beispiel

lautet:

Beispiel

# 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)
Nach dem Login kopieren

Ausgabe

('Value of y = ', 5)
('Value of x = ', 5)

After changing...
('Value of y = ', 5)
('Value of x = ', 6)
Nach dem Login kopieren

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!

Verwandte Etiketten:
Quelle:tutorialspoint.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage