Copia profunda de una lista en Python
-
Utilice la función
copy.deepcopy()
para realizar una copia profunda de una lista en Python - Use la comprensión de listas para copiar en profundidad una lista en Python
Podemos crear copias superficiales y profundas en Python. Una copia profunda de una lista es crear una nueva lista y luego insertar recursivamente en ella las copias de los elementos de la lista original. Se refiere a la clonación de una lista y cualquier cambio realizado en la lista original no afecta a la lista clonada.
Utilice la función copy.deepcopy()
para realizar una copia profunda de una lista en Python
La función deepcopy()
del módulo copy
se utiliza para crear una copia profunda de la lista especificada. Si modificamos esta copia, el contenido de la lista original seguirá siendo el mismo y no se modificará.
Por ejemplo,
import copy
A = [[10, 60], [50, "Hi"], ["Hello", 5, 80]]
B = copy.deepcopy(A)
A[2][0] = "World"
A[0][1] = 10
print("List A is : % s" % (A))
print("List B is : % s" % (B))
Producción :
List A is : [[10, 10], [50, 'Hi'], ['World', 5, 80]]
List B is : [[10, 60], [50, 'Hi'], ['Hello', 5, 80]]
La lista B
no se modifica después de que se asigna un nuevo valor en la lista A
porque la lista B
es una copia en profundidad de la lista A
. La lista A
y la lista B
son independientes entre sí.
Use la comprensión de listas para copiar en profundidad una lista en Python
La comprensión de listas en Python se usa para crear nuevas listas a partir de otros iterables como listas, tuplas, cadenas y más. La comprensión de listas hace que el código sea simple y eficiente.
Básicamente haremos lo que hace la función deepcopy()
y crearemos de forma recursiva una nueva copia de la lista dada en este método.
Por ejemplo,
A = [2, 4, 6, 8, 10]
B = [i for i in A]
A[0] = "Hi"
print("List A is : % s" % (A))
print("List B is : % s" % (B))
Producción :
List A is : ['Hi', 4, 6, 8, 10]
List B is : [2, 4, 6, 8, 10]
También podemos realizar este método sin comprensión de listas y usar el bucle for de forma tradicional. Sin embargo, se necesitan más líneas de código y más tiempo.
Artículo relacionado - Python List
- Convertir un diccionario en una lista en Python
- Eliminar todas las apariciones de un elemento de una lista en Python
- Eliminar duplicados de una lista en Python
- Cómo obtener el promedio de una lista en Python
- ¿Cuál es la diferencia entre los métodos de lista que añaden y amplían
- Cómo convertir una lista en cadena en Python