Scratch that. b becomes all upper... John Henry wrote: > 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 > > > > > > > > >
-- http://mail.python.org/mailman/listinfo/python-list