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 > > > -- http://mail.python.org/mailman/listinfo/python-list
