Middle+
Povedz mi o module copy v Pythone. Čo je rozdiel medzi copy a deepcopy?
sobes.tech AI
Odpoveď od AI
Modul copy v Pythone ponúka funkcie na vytváranie kópií objektov. Hlavné funkcie:
copy.copy(obj)— povrchová kópia.copy.deepcopy(obj)— hlboká kópia.
Rozdiel medzi copy a deepcopy:
- Povrchová kópia vytvára nový objekt, ale vnorené objekty vo vnútri sa nekopírujú, iba sa na ne odkazuje rovnakými objektmi ako v origináli.
- Hlboká kópia rekurzívne kopíruje všetky vnorené objekty, čím vytvára úplne nezávislú kópiu.
Príklad:
import copy
original = [1, [2, 3]]
shallow = copy.copy(original)
deep = copy.deepcopy(original)
original[1][0] = 'zmenené'
print(shallow) # [1, ['zmenené', 3]] — vnorený zoznam sa zmenil
print(deep) # [1, [2, 3]] — hlboká kópia sa nezmenila