Heim > Backend-Entwicklung > Python-Tutorial > Warum wirkt sich das Ändern einer Kopiervariablen auf die Originalvariable in Python aus?

Warum wirkt sich das Ändern einer Kopiervariablen auf die Originalvariable in Python aus?

Mary-Kate Olsen
Freigeben: 2024-12-14 19:11:13
Original
680 Leute haben es durchsucht

Why Does Changing a Copy Variable Affect the Original Variable in Python?

Python: Warum sich das Ändern einer Kopiervariablen auf die Originalvariable auswirkt

In Python kann es zu einem eigenartigen Verhalten kommen, wenn Änderungen an einer Kopie vorgenommen werden Variable scheint auch die ursprüngliche Variable zu verändern. Dies liegt daran, dass Python-Variablen Referenzen statt tatsächlicher Werte speichern.

Um dies zu verstehen, betrachten Sie die beschriebene Situation:

org_list = ['y', 'c', 'gdp', 'cap']
copy_list = org_list       # Pass reference to org_list
copy_list.append('hum')

print(copy_list)           # ['y', 'c', 'gdp', 'cap', 'hum']
print(org_list)            # ['y', 'c', 'gdp', 'cap', 'hum']
Nach dem Login kopieren

Wenn Sie copy_list zu org_list zuweisen, erstellen Sie keine neue Liste sondern vielmehr wird ein Verweis auf dasselbe Listenobjekt im Speicher erstellt. Daher wirken sich alle Änderungen an copy_list oder org_list direkt auf beide Variablen aus.

Um eine wirklich unabhängige Kopie zu erstellen, müssen Sie eine Kopie der tatsächlichen Daten und keine Referenz übergeben. Dies kann mithilfe des Slice-Zuweisungsoperators erfolgen:

copy_list = org_list[:]    # Create a deep copy by slicing
Nach dem Login kopieren

Durch das Slicen der ursprünglichen Liste erstellen Sie ein neues Listenobjekt mit einer eigenen Kopie der Daten. Alle an copy_list vorgenommenen Änderungen wirken sich nicht auf org_list aus und umgekehrt.

Das obige ist der detaillierte Inhalt vonWarum wirkt sich das Ändern einer Kopiervariablen auf die Originalvariable in Python aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage