list partition
David M. Cooke
cookedm+news at physics.mcmaster.ca
Sat Feb 21 23:27:59 EST 2004
More information about the Python-list mailing list
Sat Feb 21 23:27:59 EST 2004
- Previous message (by thread): list partition
- Next message (by thread): list partition
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
At some point, "Moosebumps" <Moosebumps at Moosebumps.Moosebumps> wrote: > Is there a function that takes a list and predicate, and returns two > lists -- one for which the predicate is true and one for which it is false? > > I know I can call filter(p, list) and filter( not p, list) or something like > that, but I assume it would be more efficient to do it in one pass. Not too hard to write your own: def filtersplit(p, iterable): ptrue = [] pfalse = [] for x in iterable: if p(x): ptrue.append(x) else: pfalse.append(x) return ptrue, pfalse > Actually I probably can't call "not p", I would have to wrap p in a function > notP or something. Or is there a shortcut for lambda(x) : not p(x)? I > guess it isn't that long : ) itertools.ifilterfalse negates the condition for you. -- |>|\/|< /--------------------------------------------------------------------------\ |David M. Cooke |cookedm(at)physics(dot)mcmaster(dot)ca
- Previous message (by thread): list partition
- Next message (by thread): list partition
- Messages sorted by: [ date ] [ thread ] [ subject ] [ author ]
More information about the Python-list mailing list