Este post trata sobre el lenguaje de programación Python. Vamos a ver cómo copiar un arreglo pero eliminando la referencia; de este modo al modificar el arreglo A no vamos a modificar sin querer al arreglo B.
Esto también es conocido como clonar un arreglo o clonar una lista en Python.
Nota: con lista también me refiero a arreglo, array, vector, como lo conozcas.
Para una lista de una dimensión lo único que tenemos que hacer es usar operaciones de listas por ejemplo:
lista = lista_original[:]
Veamos un ejemplo en donde se demuestra que al modificar una lista no se está modificando a la otra:
lista = [1, 2, 3]
otra_lista = lista[:]
print("lista:")
print(lista)
print("otra_lista:")
print(otra_lista)
# Modificar a lista
print("Modificando...")
otra_lista[0] = 4
# Y al imprimir, no debería haber modificado a "lista"
print("lista:")
print(lista)
print("otra_lista:")
print(otra_lista)
Para copiar una lista que tiene dos dimensiones (por ejemplo una matriz) podemos usar a la función deepcopy
(copia en profundidad) presente dentro de copy
.
Primero la importamos.
from copy import deepcopy
Después obtenemos una copia del arreglo con:
copia = deepcopy(original)
Algo así:
from copy import deepcopy
lista = [
[1, 2],
[3, 4],
]
otra_lista = deepcopy(lista)
print("lista:")
print(lista)
print("otra_lista:")
print(otra_lista)
# Modificar a lista
print("Modificando...")
otra_lista[0][0] = 4
# Y al imprimir, no debería haber modificado a "lista"
print("lista:")
print(lista)
print("otra_lista:")
print(otra_lista)
De este modo la copia se realiza en profundidad y elimina las referencias, de modo que al modificar una lista o pasarla a una función, si se modifica dentro de la misma, no surtirá efecto en la original.
Como puedes ver estas técnicas van a evitar que al modificar un arreglo copia, modifiques sin querer al original. Esto sirve para cuando queremos crear una copia de la lista sin modificar la original; por ejemplo al pasarla como argumento en una función.
El día de hoy vamos a ver cómo restablecer la impresora térmica GOOJPRT PT-210 a…
Hoy voy a enseñarte cómo imprimir en una impresora térmica conectada por USB a una…
En este post voy a enseñarte a programar un servidor web en Android asegurándonos de…
En este post te quiero compartir un código de C++ para listar y cancelar trabajos…
Gracias a WebAssembly podemos ejecutar código de otros lenguajes de programación desde el navegador web…
Revisando y buscando maneras de imprimir un PDF desde la línea de comandos me encontré…
Esta web usa cookies.