| title | Python Copy Modul - Python Spickzettel |
|---|---|
| description | Das Copy-Modul bietet Funktionen zum Kopieren verschiedener Elemente wie Listen, Objekte oder Arrays. Es ermöglicht sowohl flache (Shallow) als auch tiefe (Deep) Kopien. |
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.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]]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'copy' is not defined
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]]
- Cheatsheet: OOP Basics
- Cheatsheet: Listen und Tupel
- Cheatsheet: Dictionaries
- Blog: Python Datentypen
- object()
- list()
- dict()
- slice()