Sobes.tech
Middle+

Parlami del modulo copy in Python. Qual è la differenza tra copy e deepcopy?

sobes.tech AI

Risposta dell'AI

Il modulo copy in Python fornisce funzioni per creare copie di oggetti. Le funzioni principali:

  • copy.copy(obj) — copia superficiale.
  • copy.deepcopy(obj) — copia profonda.

Differenza tra copy e deepcopy:

  • La copia superficiale crea un nuovo oggetto, ma gli oggetti annidati al suo interno non vengono copiati, ma semplicemente referenziati dagli stessi oggetti dell'originale.
  • La copia profonda ricorsivamente copia tutti gli oggetti annidati, creando una copia completamente indipendente.

Esempio:

import copy

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

original[1][0] = 'cambiato'

print(shallow)  # [1, ['cambiato', 3]] — lista annidata cambiata
print(deep)     # [1, [2, 3]] — copia profonda non cambiata