Junior — Middle
Explica qué es la copia superficial de objetos en Python y en qué se diferencia de la copia profunda.
sobes.tech AI
Respuesta de la IA
La copia superficial (shallow copy) en Python crea un nuevo objeto, pero los objetos anidados dentro de él no se copian, solo se copian las referencias a ellos. Es decir, si dentro del objeto hay estructuras mutables anidadas (por ejemplo, listas, diccionarios), serán compartidas entre el original y la copia.
La copia profunda (deep copy) crea un nuevo objeto y copia recursivamente todos los objetos anidados, creando una copia completamente independiente.
Ejemplo:
import copy
original = [1, [2, 3]]
shallow = copy.copy(original)
deep = copy.deepcopy(original)
shallow[1].append(4)
print(original) # Mostrará: [1, [2, 3, 4]] — la lista anidada cambió también en el original
print(deep) # Mostrará: [1, [2, 3]] — la copia profunda no cambió
Por lo tanto, la copia superficial es adecuada cuando los objetos anidados no cambian, y la copia profunda cuando se necesita independencia total de la copia respecto al original.