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

Andrés Gattinoni andresgattinoni en gmail.com
Lun Dic 27 12:50:22 ART 2010


2010/12/27 Ricardo Armas <rarmas en gmail.com>:
> 2010/12/27 Ricardo Armas <rarmas en gmail.com>:
>> 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?
>> Fácil, remueve las posiciones de 1 a 3, el 1 está en la posición 0.
> Mentira, no sé. :)

Yo supongo que es:

estado inicial: lista con [0,1,2]
primera iteración: remueve el elemento 0 y la lista pasa a tener dos
elementos [1,2]
segunda iteración: remueve el elemento 1 y la lista queda con un
elemento [1] (que pasó de la posición 1 a la 0).

No sé si será efectivamente así y menos sé por qué, pero podría ser
una explicación posible.



More information about the pyar mailing list