[Python] Strano comportamento di list

Eriol eriol a mornie.org
Lun 13 Ott 2008 16:01:00 CEST


On Monday 13 October 2008 15:44:39 michele a nectarine.it wrote:
> Come vedete (1, 5, 38473) è rimasto, e non capisco perché.

Perché il for-in mantiene un indice interno incrementato ad ogni ciclo: se 
modifichi la lista su cui stai iterando ovviamente l'indice del ciclo e quello 
della lista, non coincidono più e per questo rilevi quel comportamento 
anomalo.

Come soluzione puoi iterare su una copia della lista:

>>> for k in list(L): # La copia puoi farla anche con L[:] ma è meno esplicito
...    if k[0] == 1: L.remove(k)


HTH,

-- 
 Eriol - *p = NULL; - EIBTI
 GPG Key ID 0B7C8A19
 http://mornie.org


Maggiori informazioni sulla lista Python