Heim > Artikel > Backend-Entwicklung > So klonen Sie eine Liste in Python
Wie kopiere ich eine Liste in Python?
Manche Leute mögen sagen, ist das nicht eine sehr einfache Sache? Wäre es nicht besser, einfach new_list = old_list zu haben?
Ist das tatsächlich machbar? Geben wir ein Beispiel:
Finden Sie das nicht toll? Wenn sich meine ursprüngliche Liste ändert, ändert sich auch meine neu kopierte Liste. Nicht das gewünschte Ergebnis. Warum passiert das?
Es stellt sich heraus, dass bei der Verwendung von Zuweisung (=) in Python tatsächlich nur auf einen Verweis auf die neue Variable verwiesen wird. Vereinfacht ausgedrückt besteht die eigentliche Operation darin, die Speicheradresse von zuzuweisen a. Wenn b, a und b zu diesem Zeitpunkt auf dieselbe Speicheradresse verweisen, wird für b keine neue Speicheradresse geöffnet. Wenn sich also der Wert in der Speicheradresse ändert, ändert sich auch der Wert von b.
Wie sollen wir es also richtig kopieren? Wenn die Liste unveränderliche Daten enthält, können die folgenden Methoden verwendet werden:
Wir können zufällig eine der Methoden zur Überprüfung auswählen:
Wie Sie sehen können, sind die Listen, die wir zu diesem Zeitpunkt kopiert haben, unabhängig und von der ursprünglichen Liste überhaupt nicht betroffen. Haben Sie jedoch meinen Titel bemerkt? Kann verwendet werden, wenn die Liste ein unveränderlicher Datentyp ist. Lassen Sie uns an dieser Stelle ein Gegenbeispiel zur Veranschaulichung geben:
An diesem Punkt werden Sie feststellen, dass dies dem Ergebnis der Verwendung von Zuweisung (=) etwas ähnlich zu sein scheint, aber es ist anders. Wenn wir die obigen Kopierlisten verwenden, wird tatsächlich eine flache Kopie implementiert. Das flache Kopieren ist tatsächlich etwas fortgeschrittener als die Zuweisung, das heißt, es kopiert alle Werte in der Liste in das neue Objekt. Wenn es sich bei dem Wert in der Liste jedoch um variable Daten (Liste, Wörterbuch, Funktion, Klasse usw.) handelt. usw.), wird nur ein Angebot kopiert.
Deep Copy
Wie sollen wir also kopieren, wenn die kopierte Liste variable Daten enthält? Es ist ganz einfach. Wo es eine flache Kopie gibt, gibt es auch eine tiefe Kopie. Eine tiefe Kopie bedeutet, dass alles auf das neue Objekt kopiert wird, was Sie von allen Sorgen befreit.
Das obige ist der detaillierte Inhalt vonSo klonen Sie eine Liste in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!