Python Copy Modul

Das Copy Modul ist eine Sammlung von Funktionen, die sich auf das Kopieren verschiedener Elemente einer Liste, von Objekten, Arrays usw. beziehen. Es kann verwendet werden, um flache Kopien (shallow copies) sowie tiefe Kopien (deep copies) zu erstellen.

Aus der Python 3 Dokumentation

Zuweisungsanweisungen in Python kopieren keine Objekte, sie erstellen Bindungen zwischen einem Ziel und einem Objekt. Für Sammlungen, die veränderbar sind oder veränderbare Elemente enthalten, ist manchmal eine Kopie erforderlich, damit man eine Kopie ändern kann, ohne die andere zu verändern. Dieses Modul bietet generische shallow (flache) und deep (tiefe) Kopiervorgänge.

Shallow copy operations (Flache Kopieroperationen)

Eine flache Kopie konstruiert ein neues zusammengesetztes Objekt und fügt dann (soweit möglich) Referenzen auf die im Original gefundenen Objekte ein.

copy.copy(x) Gibt eine flache Kopie von x zurück.

import copy
a = [[1],[2],[3]]
# Erstellt flache Kopie (verschachtelte Listen werden immer noch referenziert)
b = copy.copy(a)

a
[[1], [2], [3]]
b
[[1], [2], [3]]

Ohne Import des copy Moduls kann es nicht verwendet werden

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
NameError: name 'copy' is not defined

Deep copy operations (Tiefe Kopieroperationen)

Eine tiefe Kopie konstruiert ein neues zusammengesetztes Objekt und fügt dann rekursiv Kopien der im Original gefundenen Objekte ein.

copy.deepcopy(x[, memo]) Gibt eine tiefe Kopie von x zurück.

import copy
a = [[1],[2],[3]]
# Erstellt tiefe Kopie (vollständig unabhängige Kopie)
b = copy.deepcopy(a)

# Original modifizieren
a[0][0] = 0
a[1] = None

a
[[0], None, [3]]
b
[[1], [2], [3]]
Morty Proxy This is a proxified and sanitized view of the page, visit original site.