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.