> 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