Heim > Backend-Entwicklung > Python-Tutorial > Wie kann man Listen in Python richtig klonen und unbeabsichtigte Änderungen vermeiden?

Wie kann man Listen in Python richtig klonen und unbeabsichtigte Änderungen vermeiden?

DDD
Freigeben: 2024-12-21 04:28:11
Original
439 Leute haben es durchsucht

How to Properly Clone Lists in Python and Avoid Unintended Modifications?

Klonen von Listen in Python: So verhindern Sie unerwartete Änderungen

Zuweisen einer neuen Variablen zu einer vorhandenen Liste (z. B. new_list = my_list) in Python erstellt keine separate Liste, sondern kopiert lediglich den Verweis auf die Originalliste. Dies bedeutet, dass alle an new_list vorgenommenen Änderungen in my_list widergespiegelt werden und umgekehrt.

Gründe für unerwartetes Listenverhalten:

Das Verhalten entsteht, weil Python Speicherreferenzen für verwendet Objekte wie Listen. Wenn Sie einer Liste eine neue Variable zuweisen, dupliziert diese nicht die Liste, sondern verweist auf dieselbe zugrunde liegende Datenstruktur. Alle Änderungen an einer Referenz wirken sich daher auf alle Referenzen auf dieselbe Datenstruktur aus.

Klonoptionen zur Verhinderung unerwarteter Änderungen:

Um eine wirklich unabhängige Kopie einer Liste zu erstellen , haben Sie mehrere Möglichkeiten:

  1. list.copy(): Die integrierte list.copy()-Methode gibt eine neue Liste zurück, die eine Kopie des Originals ist.
  2. Slicing: Die Verwendung der Slicing-Syntax (new_list = old_list[:]) für eine Liste kopiert die Elemente aus der Originalliste in eine neue Liste.
  3. list()-Konstruktor: Der list()-Konstruktor kann verwendet werden, um eine neue Liste aus einer vorhandenen zu erstellen list: new_list = list(old_list).
  4. copy.copy(): Die Funktion copy.copy() aus dem Kopiermodul erstellt eine flache Kopie der Liste, d. h. verschachtelte Listen wird weiterhin Referenzen mit der ursprünglichen Liste teilen.
  5. copy.deepcopy(): Die Funktion copy.deepcopy() aus dem Kopiermodul erstellt eine tiefe Kopie von die Liste und kopiert auch alle verschachtelten Elemente. Dies ist die gründlichste, aber auch langsamste Option.

Beispiel:

my_list = [1, 2, 3]
new_list = my_list.copy()
new_list.append(4)
print(my_list)  # Output: [1, 2, 3] (unchanged)
Nach dem Login kopieren

In diesem Beispiel ist new_list eine separate und unabhängige Kopie von my_list , daher hat das Hinzufügen eines Elements zu new_list keinen Einfluss auf my_list.

Das obige ist der detaillierte Inhalt vonWie kann man Listen in Python richtig klonen und unbeabsichtigte Änderungen vermeiden?. 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