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...