Heim >Backend-Entwicklung >Python-Tutorial >Der Unterschied zwischen tiefer und flacher Kopie in Python
Die Zuweisung von Objekten in Python ist eigentlich eine Referenz auf das Objekt. Wenn ein Objekt erstellt und einer anderen Variablen zugewiesen wird, kopiert Python nicht das Objekt, sondern nur den Verweis auf das Objekt.
Flache Kopie: Das äußerste Objekt selbst wird kopiert und die internen Elemente werden nur mit einer Referenz kopiert. Das heißt, das Objekt wird einmal kopiert, andere im Objekt referenzierte Objekte werden jedoch nicht kopiert.
Tiefe Kopie: Sowohl periphere als auch interne Elemente kopieren das Objekt selbst, nicht die Referenz. Das heißt, das Objekt wird einmal kopiert und andere im Objekt referenzierte Objekte werden ebenfalls kopiert.
Die Funktionen des tiefen und flachen Kopierens
1. Reduzieren Sie den Speicherverbrauch
2 Eine Kopie der Originaldaten, um zu verhindern, dass die Originaldaten nach der Änderung der Daten gefunden werden.
Verwandte Empfehlungen: „Python-Video-Tutorial“
Flache Kopie (Kopie): Kopiert das übergeordnete Objekt und kopiert nicht die internen untergeordneten Objekte des Objekts.
Deepcopy: Die Deepcopy-Methode des Kopiermoduls kopiert das übergeordnete Objekt und seine untergeordneten Objekte vollständig.
>>>a = {1: [1,2,3]} >>> b = a.copy() >>> a, b({1: [1, 2, 3]}, {1: [1, 2, 3]}) >>> a[1].append(4) >>> a, b({1: [1, 2, 3, 4]}, {1: [1, 2, 3, 4]})
Deep Copy erfordert die Einführung des Kopiermoduls:
>>>import copy >>> c = copy.deepcopy(a) >>> a, c({1: [1, 2, 3, 4]}, {1: [1, 2, 3, 4]}) >>> a[1].append(5) >>> a, c({1: [1, 2, 3, 4, 5]}, {1: [1, 2, 3, 4]})
1. b = a.copy(): Flache Kopie, a und b sind unabhängige Objekte, aber ihre Unterobjekte zeigt immer noch auf ein einheitliches Objekt (ist eine Referenz).
2. b = copy.deepcopy(a): Deep copy, a und b kopieren das übergeordnete Objekt und seine untergeordneten Objekte vollständig und sind völlig unabhängig.
Das obige ist der detaillierte Inhalt vonDer Unterschied zwischen tiefer und flacher Kopie in Python. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!