GeeksforGeeks (Deutsch)

In Python kopieren Zuweisungsanweisungen keine Objekte, sie erstellen Bindungen zwischen einem Ziel und einem Objekt. Wenn wir = operator Benutzer denkt, dass dies ein neues Objekt erstellt; nun, es nicht. Es erstellt nur eine neue Variable, die die Referenz des ursprünglichen Objekts teilt. Manchmal möchte ein Benutzer mit veränderlichen Objekten arbeiten, um dies zu tun, sucht der Benutzer nach einer Möglichkeit, „echte Kopien“ oder „Klone“ dieser Objekte zu erstellen., Oder manchmal möchte ein Benutzer Kopien, die der Benutzer ändern kann, ohne gleichzeitig das Original automatisch zu ändern, um Kopien von Objekten zu erstellen.

Manchmal wird eine Kopie benötigt, damit man eine Kopie ändern kann, ohne die andere zu ändern. In Python gibt es zwei Möglichkeiten, Kopien zu erstellen:

  • Deep copy
  • Shallow copy

Um diese Kopien zu erstellen, verwenden wir copy Modul. Wir verwenden copy Modul für flache und tiefe Kopiervorgänge.,>

li2 = copy.copy(li1)
li3 = copy.deepcopy(li1)



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 :

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.