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

Juanjo Conti jjconti en gmail.com
Lun Dic 27 12:30:17 ART 2010


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



More information about the pyar mailing list