Wenn Sie in Python ein Objekt kopieren möchten, erfüllt der Zuweisungsoperator seinen Zweck nicht. Es stellt eine Bindung zwischen dem Ziel und dem Objekt her, d. h. es erstellt niemals ein neues Objekt. Es wird lediglich eine neue Variable erstellt, die die ursprüngliche Objektreferenz gemeinsam nutzt. Um dieses Problem zu lösen, wird das Replikationsmodul bereitgestellt. Dieses Modul verfügt über gemeinsame Vorgänge zum flachen Kopieren und zum tiefen Kopieren.
Flache Kopie erstellt ein neues zusammengesetztes Objekt und fügt dann die Referenz in das Originalobjekt ein. Es kopiert Objekte mit −
copy.copy(x) Return a shallow copy of x.
Deep Copy erstellt ein neues zusammengesetztes Objekt und fügt dann rekursiv Kopien der Objekte im Originalobjekt ein. Es kopiert Objekte mit den folgenden Methoden −
copy.deepcopy(x[, memo]) Return a deep copy of x. Here, memo is a dictionary of objects already copied during the current copying pass;
Die folgenden Probleme können bei der Verwendung von Deep-Copy-Vorgängen auftreten -
Rekursion kann zu rekursiven Schleifen führen.
Da Deep Copy alles kopiert, ist es möglich, zu viel zu kopieren, beispielsweise Daten, die Sie zwischen Replikaten teilen möchten.
Die Methode deepcopy() vermeidet diese Probleme jedoch. Mal sehen, wie −
Behält während des aktuellen Kopiervorgangs ein Memo-Wörterbuch der kopierten Objekte bei
Erlauben Sie benutzerdefinierten Klassen, Kopiervorgänge oder kopierte Komponentensätze zu überschreiben.
Um das Kopiermodul zu installieren, verwenden Sie pip −
pip install copy
Kopiermodul nach der Installation verwenden −
import copy
Wir verwenden eine flache Kopie, um das Objekt zu kopieren. Es erstellt ein neues Objekt, um einen Verweis auf das ursprüngliche Element zu speichern. Sehen wir uns ein Beispiel an −
import copy # Create a List myList = [[5, 10], [15, 20]] # Display the list print("List = ", myList) # Shallow Copy myList2 = copy.copy(myList) # Display the copy of the List print("New copy of the list =", myList2)
List = [[5, 10], [15, 20]] New copy of the list = [[5, 10], [15, 20]]
Im obigen Beispiel haben wir mit der Methode copy() eine flache Kopie der Liste erstellt.
Wir werden die Methode deepcopy() verwenden, um ein Objekt tief zu kopieren. Eine tiefe Kopie erstellt auch ein neues Objekt. Sehen wir uns ein Beispiel an −
import copy # Create a List myList = [[5, 10], [15, 20]] # Display the list print("List = ", myList) # Deep Copy myList2 = copy.deepcopy(myList) # Display the copy of the List print("New copy of the list =", myList2)
List = [[5, 10], [15, 20]] New copy of the list = [[5, 10], [15, 20]]
Das obige ist der detaillierte Inhalt vonWie kopiere ich Objekte in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!