8.5 Summary
In this chapter, we’ve looked at a number of functions in the itertools
module. This library module helps us to work with iterators in sophisticated ways.
We’ve looked at the infinite iterators; they repeat without terminating. They include the count()
, cycle()
, and repeat()
functions. Since they don’t terminate, the consuming function must determine when to stop accepting values.
We’ve also looked at a number of finite iterators. Some of them are built-in, and some of them are a part of the itertools
module. They work with a source iterable, so they terminate when that iterable is exhausted. These functions include enumerate()
, accumulate()
, chain()
, groupby()
, zip_longest()
, zip()
, pairwise()
, compress()
, islice()
, dropwhile()
, takewhile()
, filterfalse()
, filter()
, starmap()
, and map()
. These functions allow us to replace possibly complex generator expressions with simpler-looking functions.
We’ve noted that functions like the tee()
function...