Warum das Shallow Copy Dictionary das Original nicht aktualisiert
Beim Umgang mit Datenstrukturen ist das Verständnis der Nuancen des Kopierens von entscheidender Bedeutung. Python bietet zwei primäre Kopiermethoden: flaches und tiefes Kopieren. Dieser Artikel befasst sich mit den Unterschieden dieser Techniken und untersucht insbesondere, warum das Aktualisieren einer flachen Kopie keine Auswirkungen auf das Originalwörterbuch hat.
Pythons flache Kopie
dict.copy() Führt eine flache Kopie eines Wörterbuchs durch, d. h. es erstellt einen neuen Verweis auf denselben Inhalt. Die Inhalte werden nicht nach Wert dupliziert, sondern teilen sich stattdessen die gleiche Speicherreferenz.
Betrachten Sie das Beispiel:
original = dict(a=1, b=2) new = original.copy() new.update({'c': 3})
Nach der flachen Kopie werden alle an der neuen Referenz (neu) vorgenommenen Änderungen vorgenommen Ändern Sie das ursprüngliche Wörterbuch (Original), da sie auf dieselben zugrunde liegenden Daten verweisen. Im Beispiel wird durch das Hinzufügen von „c“:3 zur flachen Kopie auch das Originalwörterbuch aktualisiert.
Deep Copy vs. Shallow Copy verstehen
Wo flaches Kopieren nur erstellt Durch neue Verweise auf vorhandene Daten werden durch Deep Copying völlig neue Objekte erstellt. Die Inhalte werden rekursiv dupliziert. Dadurch wird sichergestellt, dass an der neuen Referenz vorgenommene Änderungen keine Auswirkungen auf das Original haben.
Mit copy.deepcopy() wird eine tiefe Kopie durchgeführt. In diesem Fall haben alle an der neuen Referenz (c) vorgenommenen Änderungen keine Auswirkungen auf das ursprüngliche Wörterbuch (a).
Fazit
Flaches Kopieren in Python erfordert die Erstellung eines neuen Wörterbuchs Verweise auf vorhandene Daten, während durch tiefes Kopieren völlig neue Objekte mit dupliziertem Inhalt erstellt werden. Das Verständnis dieser Unterscheidung ist beim Umgang mit komplexen Datenstrukturen von entscheidender Bedeutung, da sie bestimmt, wie sich Änderungen an einem Objekt auf die anderen auswirken.
Das obige ist der detaillierte Inhalt vonWarum ändert die Aktualisierung einer flachen Kopie eines Python-Wörterbuchs nicht das Original?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!