X Tutup
Skip to content

Latest commit

 

History

History
98 lines (74 loc) · 2.98 KB

File metadata and controls

98 lines (74 loc) · 2.98 KB
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.
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]]

Relevant links (Relevante Links)

  • Cheatsheet: OOP Basics
  • Cheatsheet: Listen und Tupel
  • Cheatsheet: Dictionaries
  • Blog: Python Datentypen
  • object()
  • list()
  • dict()
  • slice()
X Tutup