Middle+
Papaskink apie copy modulį Python. Kuo skiriasi copy ir deepcopy?
sobes.tech AI
Atsakymas iš AI
Python copy modulis teikia funkcijas objektų kopijoms kurti. Pagrindinės funkcijos:
copy.copy(obj)— paviršutiniška kopija.copy.deepcopy(obj)— gili kopija.
Skirtumas tarp copy ir deepcopy:
- Paviršutiniška kopija sukuria naują objektą, tačiau įdėtieji objektai jo viduje nėra kopijuojami, jie tik nurodyti į tuos pačius objektus kaip ir originalas.
- Gili kopija rekursyviai kopijuoja visus įdėtus objektus ir sukuria visiškai nepriklausomą kopiją.
Pavyzdys:
import copy
original = [1, [2, 3]]
shallow = copy.copy(original)
deep = copy.deepcopy(original)
original[1][0] = 'pakeista'
print(shallow) # [1, ['pakeista', 3]] — įdėtas sąrašas pasikeitė
print(deep) # [1, [2, 3]] — gili kopija nepasikeitė