split up a list by condition?
Reinhold Birkenfeld
reinhold-birkenfeld-nospam at wolke7.net
Tue Jun 7 15:19:23 EDT 2005
Raymond Hettinger wrote:
>>> while writing my solution for "The python way?", I came across this fragment:
>>> vees = [c for c in wlist[::-1] if c in vocals]
>>> cons = [c for c in wlist[::-1] if c not in vocals]
>>>
>>> So I think: Have I overlooked a function which splits up a sequence
>>> into two, based on a condition
>
> Trying to compress too much into one line is not "the python way" ;-)
I know (there is a Guido quote about this, I just lost the source...)
> vees, cons = [], []
> for c in reversed(wlist):
> if c in vocals:
> vees.append(c)
> else:
> cons.append(c)
>
Well, I've found a uglier solution,
vees, cons = [], []
[(vees, cons)[ch in vocals].append(ch) for ch in wlist]
Reinhold
More information about the Python-list
mailing list