[pyar] Remover elementos de una lista mientras se la recorre
Andrés Gattinoni
andresgattinoni en gmail.com
Lun Dic 27 12:39:06 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.
>
Bueno saberlo. Cuál sería la forma adecuada de hacerlo? Así?
>>> l = range(3)
>>> for i in range(0, len(l)):
... l.remove(i)
...
>>> l
[]
More information about the pyar
mailing list