Sobes.tech
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ė