[Python] Strano comportamento di list

Andrea Gasparini gaspa a yattaweb.it
Lun 13 Ott 2008 15:52:23 CEST


ciao,

> Dove sbaglio?

devi iterere su una copia della  lista, altrimenti tutte le volte che la 
modifichi fai confusione:

>>> for k in L:
...   print k
...   if k[0] == 1:
...     L.remove(k)
... 
(1, 3, 16300)
(3, 0, 13500)
(3, 1500, 1000)
(1, 4, 38473)
(5, 5, 38473)
(3, 5, 38473)
(2, 5, 38473)
(1, 1, 38473)
>>> L
[(2, 0, 12000), (3, 0, 13500), (3, 1500, 1000), (1, 5, 38473), (5, 5, 
38473), (3, 5, 38473), (2, 5, 38473)]

Se noti salta dei  passaggi...

il modo giusto e`:
for k in L[:]:
  blablabla

bye!
-- 
-gaspa-
-----------------------------------------------
-------- https://launchpad.net/~gaspa ---------
------ HomePage: iogaspa.altervista.org -------
-Il lunedi'dell'arrampicatore: www.lunedi.org -


Maggiori informazioni sulla lista Python