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