[pyar] Remover elementos de una lista mientras se la recorre

Martin Cerdeira martincerdeira en gmail.com
Lun Dic 27 21:40:14 ART 2010


2010/12/27 Juanjo Conti <jjconti en gmail.com>:
> Lista, les comento un comportamiento que me llamó la atención:
>
>>>> l = range(3)
>>>> for x in l:
> ...     l.remove(x)
> ...
>>>> l
> [1]
>
> Por qué queda un elemento en la lista?
>
> Si uso iter para obtener un iterador con el cual recorrer la lista,
> pasa lo mismo:
>
>>>> l = range(3)
>>>> for x in iter(l):
> ...     l.remove(x)
> ...
>>>> l
> [1]
>
> Esperaba de última un error del tipo: hey! estas modificando la lista
> que estás recorriendo! Pero esto me tomó desprevenido.
>
> Saludos!
> --
> Juanjo Conti
> blog: http://www.juanjoconti.com.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/
>

Y si usas pop() ?
-------------------------------------
Martín Cerdeira - Software Developer
[web] http://www.codmacs.blogspot.com/
()  ascii ribbon campaign
/\  www.asciiribbon.org



More information about the pyar mailing list