[pyar] lista.insert()

QliX=D! [aka EHB] qlixed en gmail.com
Lun Feb 7 16:57:23 ART 2011


Usa lista2(lista) o lista2=list().extend(lista) por que la asignacion es un
alias al mismo objeto.

EHB

2011/2/7 Juan Pablo Rabino <jprabino en gmail.com>

> 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.
>
>
> _______________________________________________
> pyar mailing list pyar en python.org.ar
> http://listas.python.org.ar/listinfo/pyar
>
> PyAr - Python Argentina - Sitio web: http://www.python.org.ar/
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://listas.python.org.ar/pipermail/pyar/attachments/20110207/0ce4ca5a/attachment.html>


More information about the pyar mailing list