Sobes.tech
Middle+

Cuéntame sobre el módulo copy en Python. ¿Cuál es la diferencia entre copy y deepcopy?

sobes.tech AI

Respuesta de la IA

El módulo copy en Python proporciona funciones para crear copias de objetos. Funciones principales:

  • copy.copy(obj) — copia superficial.
  • copy.deepcopy(obj) — copia profunda.

Diferencia entre copy y deepcopy:

  • La copia superficial crea un nuevo objeto, pero los objetos anidados dentro de él no se copian, sino que simplemente se hace referencia a los mismos objetos que en el original.
  • La copia profunda recursivamente copia todos los objetos anidados, creando una copia completamente independiente.

Ejemplo:

import copy

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

original[1][0] = 'cambiado'

print(shallow)  # [1, ['cambiado', 3]] — la lista anidada cambió
print(deep)     # [1, [2, 3]] — la copia profunda no cambió