8.2 Using the finite iterators
The itertools
module provides a number of functions that we can use to produce finite sequences of values. We’ll look at 10 functions in this module, plus some related built-in functions:
enumerate()
: This function is actually part of the__builtins__
package, but it works with an iterator and is very similar to functions in theitertools
module.accumulate()
: This function returns a sequence of reductions of the input iterable. It’s a higher-order function and can do a variety of clever calculations.chain()
: This function combines multiple iterables serially.groupby()
: This function uses a function to decompose a single iterable into a sequence of iterables over subsets of the input data.zip_longest()
: This function combines elements from multiple iterables. The built-inzip()
function truncates the sequence at the length of the shortest iterable. Thezip_longest()
function pads the shorter iterables with the given fill value.compress...