GeeksforGeeks (Español)

en Python, las instrucciones de asignación no copian objetos, sino que crean enlaces entre un destino y un objeto. Cuando usamos = el usuario del operador piensa que esto crea un nuevo objeto; bueno, no lo hace. solo crea una nueva variable que comparte la referencia del objeto original. A veces un usuario quiere trabajar con objetos mutables, con el fin de hacer que el usuario busca una manera de crear «copias reales» o «clones» de estos objetos., O, a veces un usuario quiere copias que el usuario puede modificar sin modificar automáticamente el original al mismo tiempo, con el fin de hacer que creamos copias de objetos.

a veces se necesita una copia para que se pueda cambiar una copia sin cambiar la otra. En Python, hay dos formas de crear copias :

  • Deep copy
  • Shallow copy

para hacer estas copias, usamos el módulo copy. Utilizamos el módulo copy para operaciones de copia superficiales y profundas.,>

li2 = copy.copy(li1)
li3 = copy.deepcopy(li1)



En el código anterior, el copy() devuelve la copia superficial de la lista y deepcopy() devolver una copia profunda de la lista.,

Deep copy

Deep copy es un proceso en el que el proceso de copia se produce recursivamente. Significa primero construir un nuevo objeto de colección y luego rellenarlo recursivamente con copias de los objetos secundarios encontrados en el original. En caso de copia profunda, una copia del objeto se copia en otro objeto. Significa que cualquier cambio realizado en una copia del objeto no se refleja en el objeto original. En python, esto se implementa usando la función » deepcopy ()».,



Resultado:

The original elements before deep copying1 2 4 The new list of elements after deep copying 1 2 4 The original elements after deep copying1 2 4 

En el ejemplo anterior, los cambios realizados en la lista de no efecto en otras listas, lo que indica que la lista se copian en profundidad.

copia superficial

una copia superficial significa construir un nuevo objeto de colección y luego rellenarlo con referencias a los objetos secundarios encontrados en el original. El proceso de copia no se repite y, por lo tanto, no creará copias de los objetos secundarios por sí mismos., En caso de copia superficial, una referencia de objeto se copia en otro objeto. Significa que cualquier cambio realizado en una copia del objeto se refleja en el objeto original. En python, esto se implementa usando la función» copy ()».



Resultado:

The original elements before shallow copying1 2 4 The original elements after shallow copying1 2 4 

En el ejemplo anterior, los cambios realizados en la lista que hizo efecto en otra lista, indicando que la lista es de aguas poco profundas copiado.,

puntos importantes:
la diferencia entre copia superficial y profunda solo es relevante para objetos compuestos (objetos que contienen otros objetos, como listas o instancias de clase):

  • una copia superficial construye un nuevo objeto compuesto y luego (en la medida de lo posible) inserta referencias a los objetos encontrados en el original.
  • Una copia profunda construye un nuevo objeto compuesto y luego, recursivamente, inserta copias en él de los objetos encontrados en el original.

atención geek!, Fortalezca sus bases con el Curso Python Programming Foundation y aprenda lo básico.

para empezar, los preparativos de la entrevista mejoran los conceptos de las estructuras de datos con el Curso Python DS.

etiquetas del artículo:

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *