remove a list from a list
John Henry
john106henry at hotmail.com
Fri Nov 17 14:47:12 EST 2006
from sets import Set as set # Python 2.3
b = list( set([i.upper() for i in b) - set([i.upper() for i in a] ) )
Rares Vernica wrote:
> Yeah, I ended up doing a similar kind of loop. That is pretty messy.
>
> Is there any other way?
>
> Thanks,
> Ray
>
> Tim Chase wrote:
> >> That is a nice solution.
> >>
> >> But, how about modifying the list in place?
> >>
> >> That is, l would become ['c', 'D'].
> >>
> >>> >>> e = ['a', 'b', 'e']
> >>> >>> l = ['A', 'a', 'c', 'D', 'E']
> >>> >>> s = set(e)
> >>> >>> [x for x in l if x.lower() not in s]
> >>> ['c', 'D']
> >
> >
> > Well...changing the requirements midstream, eh? ;-)
> >
> > You can just change that last item to be a reassignment if "l" is
> > all you care about:
> >
> > >>> l = [x for x in l ...]
> >
> > Things get a bit hairier if you *must* do it in-place. You'd
> > have to do something like this (untested)
> >
> > for i in xrange(len(l), 0, -1):
> > if l[i-1].lower() in s:
> > del l[i-1]
> >
> >
> > which should do the job.
> >
> > -tkc
> >
> >
> >
More information about the Python-list
mailing list