Sobes.tech
Junior — Middle

Erklären Sie, was eine flache Kopie von Objekten in Python ist und wie sie sich von einer tiefen Kopie unterscheidet.

sobes.tech KI

Antwort von AI

Das flache Kopieren (shallow copy) in Python erstellt ein neues Objekt, aber die verschachtelten Objekte darin werden nicht kopiert, sondern nur die Referenzen auf sie. Das heißt, wenn im Objekt veränderbare verschachtelte Strukturen (z.B. Listen, Wörterbücher) vorhanden sind, sind diese zwischen Original und Kopie gemeinsam.

Das tiefe Kopieren (deep copy) erstellt ein neues Objekt und kopiert rekursiv alle verschachtelten Objekte, wodurch eine vollständig unabhängige Kopie entsteht.

Beispiel:

import copy

original = [1, [2, 3]]
shallow = copy.copy(original)
deep = copy.deepcopy(original)

shallow[1].append(4)
print(original)  # Gibt aus: [1, [2, 3, 4]] — die verschachtelte Liste hat sich auch im Original geändert
print(deep)      # Gibt aus: [1, [2, 3]] — die tiefe Kopie hat sich nicht geändert

Daher ist das flache Kopieren geeignet, wenn die verschachtelten Objekte sich nicht ändern, und das tiefe Kopieren, wenn die vollständige Unabhängigkeit der Kopie vom Original erforderlich ist.