Update itertools recipe for consume().

This commit is contained in:
Raymond Hettinger 2010-03-28 18:25:01 +00:00
parent d282b931a3
commit b8d688cd7c
1 changed files with 7 additions and 1 deletions

View File

@ -672,7 +672,13 @@ which incur interpreter overhead.
def consume(iterator, n):
"Advance the iterator n-steps ahead. If n is none, consume entirely."
collections.deque(islice(iterator, n), maxlen=0)
# Use functions that consume iterators at C speed.
if n is None:
# feed the entire iterator into a zero-length deque
collections.deque(iterator, maxlen=0)
else:
# advance to the emtpy slice starting at position n
next(islice(iterator, n, n), None)
def nth(iterable, n, default=None):
"Returns the nth item or a default value"