[pyar] lista.insert()

Juan BC jbc.develop en gmail.com
Lun Feb 7 17:35:18 ART 2011


La forma mas popular es esta

lista2 = list(lista1)

"QliX=D! [aka EHB]" <qlixed en gmail.com> escribió:

>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/
>>
>
>_______________________________________________
>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/


More information about the pyar mailing list