Copiar una lista de listas en Python
Publicado por Titotatin (4 intervenciones) el 07/01/2013 15:30:02
Hola a tod@s. Me ha surgido un problema en uno de mis programillas y me trae de cabeza porque me parece una chorrada, pero no he encontrado la forma de arreglarlo. Antes que nada quiero aclarar que no soy novato en python (llevo unos 5 años haciendo "chapucillas" y programas de cálculo), a pesar de que mi pregunta es bastante básica.
La cuestión es: ¿como copio una lista de listas en python?
Con copiar me refiero exactamente a eso, no a crear otra variable que apunte a la misma lista, sino una nueva. De forma que posteriormente pueda modificar las listas dentro de la lista copiada sin que la original se vea alterada.
Aquí tengo un ejemplo simplificado de lo que trato de hacer, y el problema que se me presenta:
Creo que entiendo por qué me sucede, pero no se como evitarlo. ¿Alguien me podría iluminar?
Gracias de antemano.
La cuestión es: ¿como copio una lista de listas en python?
Con copiar me refiero exactamente a eso, no a crear otra variable que apunte a la misma lista, sino una nueva. De forma que posteriormente pueda modificar las listas dentro de la lista copiada sin que la original se vea alterada.
Aquí tengo un ejemplo simplificado de lo que trato de hacer, y el problema que se me presenta:
1
2
3
4
5
6
7
8
9
10
>>> l1 = [[0, 0], [0, 0]]
>>> l2 = l1[:]
>>> l1 is l2
False
>>> l2[0][0] = 3 # Modifico el primer elemento de la primera lista de 'l2'
>>> l2
[[3, 0], [0, 0]]
>>> l1
[[3, 0], [0, 0]]
>>> # Ambas listas se ven modificadas.
Creo que entiendo por qué me sucede, pero no se como evitarlo. ¿Alguien me podría iluminar?
Gracias de antemano.
Valora esta pregunta


0