You can also iterate over a copy of the list and change the original.
i.e.

a = range(10)
for x in a[:]:
   if x % 2 == 0:
       a.remove(x)
print a

And yes, I did test it this time.

Jacob



>    for x in string:
>        if x in chars:
>            string[i] = ''

I just have a hangover from other languages, but I really wanted to
know
how Python handles iteration over a variable which is being changed
within the loop itself. Is the "for" condition evaluated in every
loop?

Its bad practice to delete a member in the collection being iterated
but Python copes OK if you just change the current item.

Alan G.

_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor


_______________________________________________
Tutor maillist  -  Tutor@python.org
http://mail.python.org/mailman/listinfo/tutor

Reply via email to