Copia profunda de Python

Copia profunda de Python
Es posible que haya pasado por el concepto de copiar archivos y carpetas de un lugar a otro dentro de su sistema operativo específico. Esta operación es bastante fácil, ya que no requiere que realice algún código. Al igual que los sistemas de archivos, la programación también admite copiar diferentes objetos. Python Language también nos permite copiar un objeto a otro usando la copia profunda, la copia superficial y los métodos de asignación. Una copia profunda es el tipo de copia en la que las propiedades de un objeto de réplica no usan referencias similares a medida que ocupa las propiedades de un objeto original.

En otras palabras, la copia del objeto recién hecha ocupará por separado sus fuentes y propiedades y será completamente independiente del objeto original. Dentro de esta guía hoy, discutiremos el uso de una copia profunda en el código de Python para copiar un objeto al mismo tipo de otro objeto. Antes de eso, necesitamos instalar la nueva versión de Python en nuestro sistema Linux para que podamos implementar ejemplos de Python. Use la instrucción "Apt" debajo con la palabra clave "Python3" para configurarla completamente. Agregue la contraseña de su cuenta del sistema y presione la clave "Ingrese" para completarla.

Necesita abrir rápidamente su carcasa de Linux con el "Ctrl+Alt+T."Comenzaremos a partir de la creación de una" copia.archivo py "python. Hemos utilizado el comando Linux "Touch" en el shell de la línea de comandos. Esto se creará en 3 segundos, y podemos abrirlo con cualquier editor como Vim, Text y Nano. Estamos abriendo nuestro nuevo archivo de Python en el editor "GNU Nano" para crear el documento de Python siguiendo la consulta de Below Shows.

Ejemplo 01: copia simple/superficial usando el operador de asignación

Comenzaremos nuestro primer ejemplo de copia utilizando el método simple que es bastante popular entre los diferentes desarrolladores. Este método utiliza el operador de asignación simple "=" para copiar el objeto a otro. No se utilizará ningún método incorporado para copiar un objeto. Después de que se lanza el archivo de Python vacío en el Nano Will, hemos agregado Python-Support en su primera línea. Después de esto, la declaración de impresión establece que el objeto se mostrará antes de cualquier actualización. Una lista "L1" se inicializa con números e imprime utilizando la declaración de impresión. Hemos copiado el contenido de la lista L1 a otra lista L2 utilizando el operador de asignación "=."Las siguientes 2 declaraciones de impresión muestran la segunda lista después de copiar, y el tercero muestra que vamos a realizar actualizaciones. Hemos reemplazado el valor en el índice 5 de la lista 2 con otro valor. Después de eso, hemos mostrado ambas listas, L1 y L2, nuevamente. Las últimas 2 declaraciones de impresión muestran los "ID" de ambas listas por separado. Guarde el código con Ctrl+S y salga con Ctrl+X.

Hemos ejecutado nuestro archivo Python "Copia.py ”con python3. Ambas listas se han mostrado antes de actualizar, yo.mi., los mismos valores. Después de agregar valor en el índice 5 de la lista 2, imprimimos ambas listas nuevamente. La visualización de ambas listas muestra que el cambio en la lista de réplicas está actualizando la lista original, yo.mi., Las mismas listas actualizadas se muestran. Además, las ID de ambas listas son las mismas, lo que significa que ambas están utilizando los mismos recursos a través de referencias.

Ejemplo 02: copia profunda

Para usar el concepto de copia profunda en Python, debemos utilizar el módulo "Copiar" en nuestro archivo de código. Este módulo de copia utilizará sus funciones incorporadas para realizar la copia profunda en Python. Entonces, hemos actualizado un poco de nuestro antiguo archivo de Python. Se agregó la extensión de Python e importó el módulo "Copiar" utilizando la palabra clave "Importar."Use un nombre de archivo diferente y no como" Copiar.py "como será problemático y cometirá errores. Hemos inicializado una lista L1 con diferentes valores numéricos y de cadena después de que la declaración de impresión establece que realizaremos una copia profunda.

La lista se ha mostrado utilizando la cláusula de impresión. Para usar la función de copia profunda () para copiar la lista L1 a la lista L2, necesitamos usar el módulo "Copiar" como palabra clave con un punto antes de la llamada de la función. Dentro de los parámetros de la función DeepCopy (), hemos estado tomando la lista L1. El operador de asignación se usa para agregar la copia a la lista L2. Después de realizar una copia profunda, la declaración de impresión se usa nuevamente para mostrar la lista L2 en el shell. Después de todo esto, hemos estado agregando dos valores en la lista L1 usando la función append () de Python. Las últimas 2 declaraciones de impresión se utilizan para mostrar el contenido de las listas: L1 y L2 una vez más.

Después de ejecutar este código actualizado, tenemos las dos listas que se muestran al inicio después de realizar la copia profunda. Al agregar 2 nuevos valores a la primera lista, hemos mostrado ambas listas nuevamente. La visualización de ambas listas muestra que la actualización en la lista original no causa ningún cambio en la lista2. Esto indica que la copia profunda creará recursos completamente diferentes a partir de la fuente del objeto original que se utilizará para una réplica. Es por eso que la actualización en uno no cambia la otra.

Ejemplo 03: Copia profunda frente a la copia superficial

Para demostrar la copia profunda en profundidad, la compararemos con el concepto de copia poco profunda. Por lo tanto, hemos actualizado nuestro código e inicializado una lista anidada L1 después de importar el módulo "Copiar", I.mi., Lista dentro de una lista. Para realizar una copia superficial, hemos estado utilizando la función Copiar () del módulo "Copiar" y usar la Lista L1 para hacer una nueva lista L2.

Ambas listas se han imprimido utilizando cláusulas de impresión. Hemos actualizado el valor de la lista 2 en el índice 1 de su lista del índice 1. Nuevamente usé las declaraciones de impresión para ver los cambios en ambas listas.

Tenemos la lista L1 y L2 que se muestran después de una copia superficial. En la actualización de la lista L2, nuevamente hemos mostrado ambas listas y descubrimos que un cambio en uno está causando que el otro cambie.

Hemos actualizado el código nuevamente y cambiamos el texto en la primera declaración de impresión a "Copia profunda."Realizó la copia profunda usando la función DeepCopy () del módulo" Copiar "y copió el contenido de una lista L1 a la nueva lista L2. Imprimió ambas listas en líneas separadas. Realizó la actualización en la lista L2 cambiando el valor en el índice 1 de su lista del índice 1 y volvió a mostrar ambas listas.

Usando la función DeepCopy (), hemos copiado la lista L1 a la nueva lista L2. Después de la actualización, sabemos que el cambio en un objeto anidado no afecta al otro objeto.

Conclusión:

Se trata de usar el concepto de copia profunda para crear una copia profunda de un objeto en Python usando el módulo "Copiar" de Python. Hemos discutido este concepto a fondo utilizando la función DeepCopy () y discutimos el método de copia simple de Python antes. Además, hemos comparado el concepto de copia profunda con una copia superficial en el ejemplo de Python. Esto se ha hecho para dejarlo más claro.