Sobes.tech
Middle+

Vorbește-mi despre modulul copy în Python. Care este diferența dintre copy și deepcopy?

sobes.tech AI

Răspuns de la AI

Modulul copy din Python oferă funcții pentru crearea de copii ale obiectelor. Funcțiile principale:

  • copy.copy(obj) — copie superficială.
  • copy.deepcopy(obj) — copie profundă.

Diferența dintre copy și deepcopy:

  • Copia superficială creează un nou obiect, dar obiectele imbricate din interior nu sunt copiate, ci doar referențiate de aceleași obiecte ca în original.
  • Copia profundă copiază recursiv toate obiectele imbricate, creând o copie complet independentă.

Exemplu:

import copy

original = [1, [2, 3]]
shallow = copy.copy(original)
deep = copy.deepcopy(original)

original[1][0] = 'schimbat'

print(shallow)  # [1, ['schimbat', 3]] — lista imbricată s-a schimbat
print(deep)     # [1, [2, 3]] — copia profundă nu s-a schimbat