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

Tordek kedrot en gmail.com
Lun Dic 27 15:30:08 ART 2010


On 27/12/10 13:17, Juanjo Conti wrote:
> Muchas gracias a todos.
>
> 2010/12/27 Claudio Freire<klaussfreire en gmail.com>:
>>  1) crear una copia de la lista para iterarla:
>>
>>  for x in list(l):
>>       l.remove(x)
>
> Intentaba evitar esto por que la lista es muy grande, pero parece que
> no hay otra.
 >
 > Por otro lado comento que simplifiqué el ejemplo, y en realidad borro
 > elementos según una condición.

Entonces tu mejor opción sería como:

newlist = []

while l:
     x = l.pop()

     if foo(x):
         continue

     newlist.append(x)


>
> Saludos,


-- 
Guillermo O. «Tordek» Freschi. Programador, Escritor, Genio Maligno.
http://tordek.com.ar :: http://twitter.com/tordek
http://www.arcanopedia.com.ar - Juegos de Rol en Argentina



More information about the pyar mailing list