Listen kopieren
Python-Listen sind eine vielseitige Datenstruktur, die es Ihnen ermöglicht, eine Sammlung von Elementen zu speichern. In Python sind Listen veränderbar (mutable), was bedeutet, dass Sie den Inhalt einer Liste nach ihrer Erstellung ändern können. Es gibt jedoch Situationen, in denen Sie eine Kopie einer Liste erstellen möchten, ohne die Originalliste zu verändern. Genau hier kommt die Python-Listen-Kopie ins Spiel.
Kopieren von Python-Listen
In Python können Sie eine Kopie einer Liste mit der Methode copy() oder dem Slice-Operator [:] erstellen. Die Methode copy() erstellt eine flache Kopie der Liste, was bedeutet, dass sie ein neues Listenobjekt erstellt, aber die Referenzen der Elemente der Originalliste in die neue Liste kopiert. Der Slice-Operator [:] erstellt ebenfalls eine flache Kopie der Liste. Wenn die Liste jedoch veränderbare Objekte wie andere Listen oder Wörterbücher enthält, verweisen die Elemente der neuen Liste auf dieselben Objekte wie die Elemente der Originalliste.
Flache Kopie vs. Tiefe Kopie
Es ist wichtig, den Unterschied zwischen einer flachen Kopie und einer tiefen Kopie zu verstehen, wenn Sie mit Python-Listen arbeiten. Eine flache Kopie erstellt lediglich ein neues Listenobjekt mit Referenzen auf die Elemente der Originalliste. Im Gegensatz dazu erstellt eine tiefe Kopie ein völlig neues Listenobjekt mit neuen Kopien der Elemente der Originalliste.
Um eine tiefe Kopie einer Liste zu erstellen, können Sie die Methode copy.deepcopy() aus dem integrierten Modul copy verwenden. Diese Methode kopiert rekursiv alle Objekte in der Liste und stellt sicher, dass die neue Liste vollständig unabhängig von der Originalliste ist.
Beispiele
Schauen wir uns einige Beispiele an, um die Konzepte des Kopierens von Python-Listen und der tiefen Kopie zu veranschaulichen.
Flache Kopie vs. tiefe Kopie in Python
# Shallow copy example
original_list = [[1, 2], [3, 4]]
shallow_copy = original_list.copy()
# Modify the original list
original_list[0][0] = 0
# The shallow copy reflects the changes made to the original list
print(shallow_copy) # Output: [[0, 2], [3, 4]]
# Deep copy example
import copy
original_list = [[1, 2], [3, 4]]
deep_copy = copy.deepcopy(original_list)
# Modify the original list
original_list[0][0] = 0
# The deep copy does not reflect the changes made to the original list
print(deep_copy) # Output: [[1, 2], [3, 4]]Fazit
Python-Listen sind eine leistungsstarke Datenstruktur, die zum Speichern und Bearbeiten von Datensammlungen verwendet werden kann. Beim Arbeiten mit Listen ist es wichtig zu verstehen, wie man Kopien von Listen erstellt, ohne die Originalliste zu verändern. In diesem Artikel haben wir die Konzepte der flachen Kopie, der tiefen Kopie und der Python-Listen-Kopiermethoden behandelt. Durch das Verständnis dieser Konzepte können Sie besseren Python-Code schreiben, der leichter zu warten und zu debuggen ist.
Praxis
Welche Operation(en) können in Python verwendet werden, um eine Liste zu kopieren?