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