Consume an iterable

Muhammad Alkarouri malkarouri at gmail.com
Sat Jan 23 06:23:17 EST 2010


Thanks everyone, but not on my machine (Python 2.6.1, OS X 10.6) it's
not:


In [1]: from itertools import count, islice

In [2]: from collections import deque

In [3]: i1=count()

In [4]: def consume1(iterator, n):
   ...:     deque(islice(iterator, n), maxlen=0)
   ...:
   ...:

In [5]: i2=count()

In [6]: def consume2(iterator, n):
   ...:     for _ in islice(iterator, n): pass
   ...:
   ...:

In [7]: timeit consume1(i1, 10)
1000000 loops, best of 3: 1.63 us per loop

In [8]: timeit consume2(i2, 10)
1000000 loops, best of 3: 846 ns per loop


Can somebody please test whether it is only my machine or is this
reproducible?

(Thanks Jan for making me actually carry the test)



More information about the Python-list mailing list