Heim  >  Artikel  >  Backend-Entwicklung  >  So klonen Sie eine Liste in Python

So klonen Sie eine Liste in Python

silencement
silencementOriginal
2019-05-25 09:22:073193Durchsuche

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:

So klonen Sie eine Liste in Python

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:

So klonen Sie eine Liste in Python

Wir können zufällig eine der Methoden zur Überprüfung auswählen:

So klonen Sie eine Liste in Python

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:

So klonen Sie eine Liste in Python

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.

So klonen Sie eine Liste in Python


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!

Stellungnahme:
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