dropwhile question
Fredrik Lundh
fredrik at pythonware.com
Sat Aug 23 18:14:47 EDT 2008
Rajanikanth Jammalamadaka wrote:
>>>> list(itertools.dropwhile(lambda x: x<5,range(10)))
> [5, 6, 7, 8, 9]
>
> Why doesn't this work?
>
>>>> list(itertools.dropwhile(lambda x: 2<x<5,range(10)))
> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
it works exactly as specified:
>>> help(itertools.dropwhile)
Help on class dropwhile in module itertools:
class dropwhile(__builtin__.object)
| dropwhile(predicate, iterable) --> dropwhile object
|
| Drop items from the iterable while predicate(item) is true.
| Afterwards, return every element until the iterable is exhausted.
>>> 2<0<5
False
maybe you meant to use itertools.ifilter?
>>> help(itertools.ifilter)
Help on class ifilter in module itertools:
class ifilter(__builtin__.object)
| ifilter(function or None, sequence) --> ifilter object
|
| Return those items of sequence for which function(item) is true.
| If function is None, return the items that are true.
>>> list(itertools.ifilter(lambda x: x<5,range(10)))
[0, 1, 2, 3, 4]
>>> list(itertools.ifilter(lambda x: 2<x<5,range(10)))
[3, 4]
</F>
More information about the Python-list
mailing list