Removing from a List in Place

Gregory Piñero gregpinero at gmail.com
Tue Sep 5 18:56:31 EDT 2006


On 9/5/06, Tim Williams <tim at tdw.net> wrote:
> > 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
> >
>
> sorry,  I meant to offer an alternative also
>
> in yourgiven case you can iterate over a copy of the list like this:
>
> >>> for item in alist[:] :
>

Thanks Tim.  I suppose that does make sense.  Iterating over a copy is
a good alternative.

-Greg



More information about the Python-list mailing list