Deleting from a list

bvdpoel at uniserve.com bvdpoel at uniserve.com
Wed Jan 2 17:39:18 CET 2002


Thanks for all the suggestions guys! I think that walking the list
backwards probably makes my life the easiest...

Hans Nowak wrote:
> 
> bvdpoel at uniserve.com wrote:
> >
> > Does python have a notion as to where the current item in a list is? I
> > have something like:
> >
> >         for l in lines:
> >                 if something ...
> >                 if something else:
> >                         delete l from list
> >
> > Of course, this doesn't work. So, I tried:
> >
> >         for i in len(lines):
> >                 l=lines[i]
> >                 ...
> >                 if ...:
> >                         lines.pop(i)
> >
> > and this causes problems since 'i' can now point to out of range lines.
> 
> You can traverse the list backwards:
> 
> >>> x = [1, 2, 3, 6, 7, 8, 1, 1, 7, 1]
> >>> for i in range(len(x)-1,-1,-1):
>         if x[i] == 1:  # or a condition of your choice
>                 del x[i]
> >>> x
> [2, 3, 6, 7, 8, 7]
> >>>
> 
> HTH,
> 
> --Hans (base64.decodestring('d3VybXlAZWFydGhsaW5rLm5ldA==\n')
>        # decode for email address ;-)
> Site:: http://www.awaretek.com/nowak/

-- 
Bob van der Poel ** Wynndel, British Columbia, CANADA **
EMAIL: bvdpoel at uniserve.com
WWW:   http://users.uniserve.com/~bvdpoel



More information about the Python-list mailing list