Im obigen Code gibt diecopy()
die flache Kopie der Liste unddeepcopy()
eine tiefe Kopie der Liste zurück.,
Deep copy
Deep copy ist ein Prozess, bei dem der Kopiervorgang rekursiv erfolgt. Dies bedeutet, zuerst ein neues Sammlungsobjekt zu erstellen und es dann rekursiv mit Kopien der untergeordneten Objekte zu füllen, die im Original gefunden wurden. Im Falle einer tiefen Kopie wird eine Kopie des Objekts in ein anderes Objekt kopiert. Dies bedeutet, dass Änderungen an einer Kopie des Objekts nicht im ursprünglichen Objekt wiedergegeben werden. In Python wird dies mit der Funktion „deepcopy()“ implementiert.,
Ausgabe:
The original elements before deep copying1 2 4 The new list of elements after deep copying 1 2 4 The original elements after deep copying1 2 4
Im obigen Beispiel wurde die in der Liste vorgenommene Änderung in anderen Listen nicht wirksam, was darauf hinweist, dass die Liste vollständig kopiert wurde.
Flache Kopie
Eine flache Kopie bedeutet, ein neues Sammlungsobjekt zu erstellen und es dann mit Verweisen auf die im Original gefundenen untergeordneten Objekte zu füllen. Der Kopiervorgang wird nicht wiederholt und erstellt daher keine Kopien der untergeordneten Objekte selbst., Im Falle einer flachen Kopie wird eine Referenz des Objekts in ein anderes Objekt kopiert. Dies bedeutet, dass alle Änderungen an einer Kopie des Objekts im ursprünglichen Objekt wiedergegeben werden. In Python wird dies mit der Funktion „copy()“ implementiert.
Ausgabe:
The original elements before shallow copying1 2 4 The original elements after shallow copying1 2 4
Im obigen Beispiel wurde die in der Liste vorgenommene Änderung in einer anderen Liste vorgenommen.,
Wichtige Punkte:
Der Unterschied zwischen flachem und tiefem Kopieren ist nur für zusammengesetzte Objekte relevant (Objekte, die andere Objekte enthalten, wie Listen oder Klasseninstanzen):
- Eine flache Kopie erstellt ein neues zusammengesetztes Objekt und fügt dann (soweit möglich) Verweise auf die im Original gefundenen Objekte ein.
- Eine tiefe Kopie erstellt ein neues zusammengesetztes Objekt und fügt dann rekursiv Kopien der im Original gefundenen Objekte ein.
Achtung geek!, Stärken Sie Ihre Grundlagen mit dem Python Programming Foundation Kurs und lernen Sie die Grundlagen.
Zunächst verbessern Ihre Interviewvorbereitungen Ihre Datenstrukturkonzepte mit dem Python DS-Kurs.
Artikel-Tags :