Wie kann ich verschachtelte Listen in Python effizient kopieren, ohne das Original zu beeinträchtigen?

DDD
Freigeben: 2024-11-24 02:40:11
Original
153 Leute haben es durchsucht

How Can I Efficiently Copy Nested Lists in Python Without Affecting the Original?

Effizientes Kopieren verschachtelter Listen in Python

In Python kann das Kopieren einer verschachtelten Liste aufgrund ihrer Veränderlichkeit schwierig sein. Das Ändern einer Liste wirkt sich auf die ursprüngliche Liste aus, wenn flache Kopiertechniken verwendet werden. Um diese Einschränkung zu überwinden, ist es wichtig, die Nuancen des Listenkopierens in Python zu verstehen und sich für eine Methode zu entscheiden, die die Unabhängigkeit der kopierten Liste gewährleistet.

Betrachten Sie das Beispiel einer 1D-Liste:

a = [1, 2]
b = a[:]
Nach dem Login kopieren

In diesem Szenario reicht ein flaches Kopieren aus, da die Änderung von b keine Auswirkungen auf a hat. Der gleiche Ansatz schlägt jedoch fehl, wenn mit 2D- oder verschachtelten Listen gearbeitet wird:

a = [[1, 2], [3, 4]]
b = a[:]
Nach dem Login kopieren

Eine Änderung von b wirkt sich in diesem Fall auch auf a aus. Um eine wirklich unabhängige Kopie der verschachtelten Liste zu erstellen, muss man in tiefere Ebenen des Kopierens eintauchen.

Lösung: Deep Copying mit copy.deepcopy()

Pythons Kopie Das Modul bietet mit seiner Funktion deepcopy() eine robuste Lösung für das tiefe Kopieren verschachtelter Listen. Im Gegensatz zum flachen Kopieren iteriert diese Funktion rekursiv durch die verschachtelte Struktur und erstellt unabhängige Kopien auf jeder Ebene:

import copy
b = copy.deepcopy(a)
Nach dem Login kopieren

Wenn deepcopy() vorhanden ist, hat die Änderung von b keine Auswirkungen auf die ursprüngliche Liste a. Diese Technik stellt sicher, dass die beiden Listen getrennt sind und unabhängig voneinander bearbeitet werden können, wodurch das Problem der Änderung verschachtelter Listen behoben wird.

Das obige ist der detaillierte Inhalt vonWie kann ich verschachtelte Listen in Python effizient kopieren, ohne das Original zu beeinträchtigen?. 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
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage