remove a list from a list
John Henry
john106henry at hotmail.com
Fri Nov 17 15:01:01 EST 2006
The curve ball is the case insensitivity otherwise it's a
straightforward set operation.
I wonder if it's possible to sub-class set and make the item
comparision case insensitive.
Anybody knows how to do that?
Tim Chase wrote:
> > Yeah, I ended up doing a similar kind of loop. That is pretty messy.
> >
> > Is there any other way?
>
> I've already provided 2 (or 3 depending on how one counts)
> solutions, each of which solve an interpretation of your original
> problem, neither of which involve more than 3 lines of fairly
> clean code. Perhaps a little more context regarding what you
> *want* to do would help. However, I suspect that answer is
> "there is no *cleaner* way to do it".
>
> Unless you're modifying an existing list that is referenced
> elsewhere, the reassignment (l = [x for x in l ...]) solution
> should work just fine. Thus, unless you have a situation akin to:
>
> g = l
> l = [x for x in l if x.lower() not in s]
> assert(thing_from_s not in g)
>
> then just reassign "l". If not, use the loop. It's that easy
> and clean. Don't try to opaquify it by collapsing it further.
> Perhaps, if your loop is messy, use my clean loop suggestion.
>
> -tkc
More information about the Python-list
mailing list