iterating lists

Arnaud Delobelle arnodel at googlemail.com
Sat Jan 23 10:19:06 EST 2010


ceciliaseidel at gmx.de writes:

> As you were talking about list.pop()...
>
> Is anyone able to reproduce the following and explain why this happens
> by chance? (Using 3.1.1)
>
> l1 = ["ready", "steady", "go"]
> l2 = ["one", "two", "tree"]
> l3 = ["lift off"]
>
> for w in l1:
>    print(l1.pop())  #prints only "go steady" - why not "ready"??
>

I suggest you simulate the loop above using pen and paper, writing the
value of w and the value of l1 at each iteration.  The behaviour you are
observing should then be clearly explained.  And you should also realise
that it's a really bad idea to mutate a list that you are iterating on!

HTH

-- 
Arnaud



More information about the Python-list mailing list