
Functional Python Programming

The itertools
module provides a number of functions that we can use to enhance or enrich an iterable source of data. We'll look at the following three functions:
count()
: This is an unlimited version of the range()
functioncycle()
: This will reiterate a cycle of valuesrepeat()
: This can repeat a single value an indefinite number of timesOur goal is to understand how these various iterator functions can be used in generator expressions and with generator functions.
The built-in range()
function is defined by an upper limit: the lower limit and step values are optional. The count()
function, on the other hand, has a start and optional step, but no upper limit.
This function can be thought of as the primitive basis for a function such as enumerate()
. We can define the enumerate()
function in terms of zip()
and count()
functions, as follows:
enumerate = lambda x, start=0: zip(count(start), x)
The enumerate()
function behaves as if it's a zip...
Change the font size
Change margin width
Change background colour