[pyar] lista.insert()

Juan Pablo Rabino jprabino en gmail.com
Lun Feb 7 16:29:23 ART 2011


Hoy cai en un "problema" con listas usando Python 2.6

Basicamente, teniendo una lista, realizo una copia de ésta y le inserto un
elemento, el elemento se inserta en ambas. Ejemplifico:

>>> lista=[1,2,3,4,5,6,7]
>>> lista
[1, 2, 3, 4, 5, 6, 7]
>>> lista2=lista
>>> lista2
[1, 2, 3, 4, 5, 6, 7]
>>> lista2.insert(2,"ELEMENTO INSERTADO")
>>> lista2
[1, 2, 'ELEMENTO INSERTADO', 3, 4, 5, 6, 7]
>>> lista
[1, 2, 'ELEMENTO INSERTADO', 3, 4, 5, 6, 7]

¿Alguien me podría explicar por qué pasa esto?

Obviamente, conocido el problema, el workaround es trivial, pero queria
saber si alguien me podia explicar la razon.
Es como que python no realiza una copia, sino que simplemente asigna el
mismo puntero de memoria a ambas listas. Si alguien tiene la respuesta se
agradece.
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20110207/3112b506/attachment.html>


More information about the pyar mailing list