Espacio publicitario (banner)
AD

¿Ya dominas lo básico? Un curso estructurado de Python es la vía rápida para dar el salto.

Ver cursos de Python en Udemy

Enlace de afiliado. No te cuesta nada extra.

🐍Lecciones de Python
Lección 41 / 69

Copia superficial frente a copia profunda

En esta lección verás la diferencia entre copia superficial y copia profunda, para evitar fallos inesperados al duplicar listas y diccionarios. Está pensada para quien busca «copia superficial y profunda en Python» o «copy y deepcopy en Python».

Una copia superficial duplica solo el contenedor más externo, mientras que los objetos anidados de dentro siguen compartidos con el original. Una copia profunda lo duplica todo hasta el fondo, así que cambiar la copia nunca afecta al original. .copy() hace una copia superficial; copy.deepcopy() hace una copia profunda.

El código de ejemplo hace una copia superficial de un diccionario, original, en shallow con .copy(), y puedes ver que modificar la parte anidada (direccion["ciudad"]) cambia también el original. En cambio, modificar una copia profunda hecha con copy.deepcopy(original) no afecta en nada a los datos originales.

«Hice una copia, pero por alguna razón el original también cambió» es un fallo clásico de principiante que ocurre justamente porque no se entiende esta distinción. Esta diferencia importa sobre todo al trabajar con datos que tienen «contenedores dentro de contenedores», como listas o diccionarios anidados.

En el desarrollo real, elegir bien el tipo de copia importa, por ejemplo, cuando editas temporalmente lo introducido en un formulario pero quieres conservar los datos originales. Las aplicaciones que gestionan mucho estado necesitan especialmente entender esta distinción.

Python
SALIDA

💡 El motor de Python puede tardar unos segundos en cargarse la primera vez que ejecutas código.

Espacio publicitario (banner)
Espacio publicitario (en el artículo)