remove a list from a list

Rares Vernica rvernica at gmail.com
Fri Nov 17 14:34:13 EST 2006


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