Python Deep Copy

Python Deep Copy
Möglicherweise haben Sie das Konzept des Kopierens von Dateien und Ordnern von einem Ort zum anderen in Ihrem spezifischen Betriebssystem durchlaufen. Diese Operation ist ziemlich einfach, da Sie keinen Code ausführen müssen. Genau wie Dateisysteme unterstützt die Programmierung auch das Kopieren verschiedener Objekte. Mit der Python -Sprache können wir auch ein Objekt mit Deep Copy, Shallow Copy und Zuordnungsmethoden zu einem anderen kopieren. Eine tiefe Kopie ist die Art der Kopie, in der die Eigenschaften eines Replikatobjekts ähnliche Referenzen nicht verwenden wie die Eigenschaften eines ursprünglichen Objekts.

Mit anderen Worten, die neu hergestellte Objektkopie belegt separat ihre Quellen und Eigenschaften und ist völlig unabhängig vom ursprünglichen Objekt. Innerhalb dieses Leitfadens werden wir heute die Verwendung von Deep Copy in Python Code diskutieren, um ein Objekt in denselben Typ eines anderen Objekts zu kopieren. Vorher müssen wir die neue Version von Python auf unserem Linux -System installieren, damit wir Python -Beispiele implementieren können. Verwenden Sie die Unterrichtsanweisung „APT“ mit dem Schlüsselwort „Python3“, um es vollständig zu konfigurieren. Fügen Sie Ihr Systemkassaktkennwort hinzu und klicken Sie auf den Schlüssel „Eingabetaste“, um es zu vervollständigen.

Sie müssen Ihre Linux -Shell schnell mit dem „Strg+Alt+t“ öffnen.Wir werden von der Herstellung einer „Kopie anfangen.Py ”Python -Datei. Wir haben den Befehl Linux "Touch" in der Befehlszeilenschale verwendet. Dies wird in 3 Sekunden erstellt, und wir können es mit jedem Redakteur wie Vim, Text und Nano öffnen. Wir eröffnen unsere neue Python-Datei im Editor „GNU Nano“, um das Python-Dokument nach der Abfrage des 2-Abgeordneten zu erstellen.

Beispiel 01: Einfache/flache Kopie mit dem Zuordnungsoperator

Wir werden unser erstes Beispiel für die Kopie mit der einfachen Methode beginnen, die bei verschiedenen Entwicklern sehr beliebt ist. Diese Methode verwendet den einfachen Zuordnungsoperator "=", um das Objekt zu einem anderen zu kopieren. Es wird keine integrierte Methode verwendet, um ein Objekt zu kopieren. Nachdem die leere Python-Datei im Nano gestartet wurde, haben wir Python-Support in der ersten Zeile hinzugefügt. Danach heißt es in der Druckerklärung, dass das Objekt vor einem Update angezeigt wird. Eine Liste „L1“ wird mit Zahlen initialisiert und mit der Druckanweisung ausgedruckt. Wir haben den Inhalt der Liste L1 in einer anderen Liste L2 mit dem Zuordnungsoperator „= = = = = =.In den nächsten 2 Druckanweisungen werden die zweite Liste nach dem Kopieren angezeigt, und die dritte zeigt, dass wir Updates durchführen werden. Wir haben den Wert bei Index 5 von Liste 2 durch einen anderen Wert ersetzt. Danach haben wir wieder beide Listen L1 und L2 angezeigt. In den letzten 2 Druckanweisungen werden die „IDs“ beider Listen getrennt angezeigt. Speichern Sie den Code mit Strg+S und beenden Sie mit Strg+x.

Wir haben unsere Python -Datei „Kopie ausgeführt“.Py ”mit Python3. Beide Listen wurden vor der Aktualisierung angezeigt, ich.e., die gleichen Werte. Nachdem wir den Wert bei Index 5 von List 2 Wert gemacht hatten, haben wir beide Listen erneut ausgedruckt. Die Anzeige beider Listen zeigt, dass die Änderung in der Replik -Liste die ursprüngliche Liste aktualisiert, i, i.e., Die gleichen aktualisierten Listen werden angezeigt. Außerdem sind die IDs beider Listen gleich, was bedeutet, dass beide dieselben Ressourcen über Referenzen verwenden.

Beispiel 02: Tiefe Kopie

Um das Deep Copy -Konzept in Python zu verwenden, müssen wir das Modul „Kopieren“ in unserer Codedatei verwenden. Mit diesem Kopiermodul wird seine integrierten Funktionen verwendet, um die tiefe Kopie in Python auszuführen. Also haben wir unsere alte Python -Datei ein wenig aktualisiert. Die Python -Erweiterung fügte hinzu und importierte das Modul "Kopieren" mit dem Schlüsselwort "Import".Verwenden Sie einen anderen Dateinamen und mögen nicht „Kopieren.py “, da es problematisch sein wird und Fehler machen wird. Wir haben eine Liste L1 mit unterschiedlichen numerischen und Stringwerten initialisiert, nachdem in der Print -Anweisung angegeben ist, dass wir eine tiefe Kopie ausführen werden.

Die Liste wurde mit der Druckklausel angezeigt. Um die Funktion Deep Copy () zu verwenden, um die Liste L1 zu kopieren, um L2 aufzulisten. Innerhalb der Funktionsparameter von DeepCopy () haben wir die Liste L1 übernommen. Der Zuordnungsoperator wird verwendet, um die Kopie in die Liste L2 hinzuzufügen. Nach der Ausführung einer tiefen Kopie wird die Druckanweisung erneut verwendet, um die Liste L2 auf der Shell anzuzeigen. Nach all dem haben wir zwei Werte in List L1 mit der Funktion append () von Python angehängt. Die letzten 2 Druckanweisungen werden verwendet, um den Inhalt der beiden Listen anzuzeigen: L1 und L2 erneut.

Nach dem Ausführen dieses aktualisierten Code. Während wir 2 neue Werte an die erste Liste anhängen, haben wir beide Listen erneut angezeigt. Die Anzeige beider Listen zeigt, dass das Update in der ursprünglichen Liste keine Änderung in List2 verursacht. Dies zeigt an, dass die tiefe Kopie völlig unterschiedliche Ressourcen als die Quelle des ursprünglichen Objekts erstellt, das für eine Replik verwendet werden soll. Deshalb ändert das Update in einem die andere nicht.

Beispiel 03: Deep Copy vs Flachkopie

Um die tiefe Kopie ausführlich zu demonstrieren, werden wir sie mit dem flachen Kopiekonzept vergleichen. Wir haben also unseren Code aktualisiert und eine verschachtelte Liste L1 nach dem Importieren des Moduls "Kopie" initialisiert, i.e., Liste innerhalb einer Liste. Um eine flache Kopie durchzuführen, haben wir die Funktion copy () des Moduls „Kopieren“ verwendet und die Liste L1 verwendet, um eine neue Liste L2 zu erstellen.

Beide Listen wurden mit Druckklauseln ausgedruckt. Wir haben den Wert von List 2 unter Index 1 seines Listenindex 1 aktualisiert. Verwendeten erneut die Druckanweisungen, um die Änderungen in beiden Listen anzuzeigen.

Wir haben die Liste L1 und L2 nach einer flachen Kopie angezeigt. Bei der Aktualisierung der Liste L2 haben wir erneut beide Listen angezeigt und festgestellt, dass sich eine Änderung eines einen verändert, der sich ändert.

Wir haben den Code erneut aktualisiert und den Text in der ersten Druckanweisung in „Deep Copy geändert.”Führte die Deep Copy mit der Funktion DeepCopy () des Moduls„ Kopieren “durch und kopierte den Inhalt einer Liste L1 in die neue Liste L2. Auf beiden Listen in separaten Zeilen ausgedruckt. Führte das Update in List L2 durch, indem der Wert in Index 1 seines Listenindex 1 geändert und beide Listen erneut angezeigt werden.

Mit der Funktion DeepCopy () haben wir die Liste L1 in die neue Liste L2 kopiert. Nach dem Update wissen wir, dass sich die Änderung eines verschachtelten Objekts nicht auf das andere Objekt auswirkt.

Abschluss:

Hier geht es darum, das Deep Copy -Konzept zu verwenden, um eine tiefe Kopie eines Objekts in Python mit dem Python -Modul „Kopieren“ zu erstellen. Wir haben dieses Konzept gründlich mit der Funktion DeepCopy () besprochen und die einfache Kopiermethode von Python zuvor diskutiert. Außerdem haben wir das Deep Copy -Konzept mit einer flachen Kopie im Python -Beispiel verglichen. Dies wurde getan, um es klarer zu machen.