On 05/09/06, Gregory Piñero <[EMAIL PROTECTED]> wrote:> I'm going
to assume that it's supposed to work like this, but could
> someone tell me the reasoning behind it?  I.E. why is 3 skipped?
>
> >>> alist=[1,2,3]
> >>> for item in alist:
> ....    print item
> ....    if item==2:
> ....            alist.remove(item)
> ....
> 1
> 2
> >>>


>
> Bonus Question:
> Can we make this behave more intuitiviely in Python 3000?

It does already,  you just haven't grasped list fully yet :):)

when you remove 2 from alist,  the list becomes length 2, there is no
longer a 3rd item in the list to iterate over.

Try this

> >>> alist=[1 ,2 ,3, 4]
> >>> for item in alist:
> ....    print item
> ....    if item==2:
> ....            alist.remove(item)
> ....    print alist
-- 
http://mail.python.org/mailman/listinfo/python-list

Reply via email to