In Python 2, reduce
is available either as a built-in function or from the functools
package (version 2.6 onwards), whereas in Python 3 reduce
is available only from functools
. However the syntax for reduce
in both Python2 and Python3 is the same and is reduce(function_to_reduce, list_to_reduce)
.
As an example, let us consider reducing a list to a single value by dividing each of the adjacent numbers. Here we use truediv
function from the operator
library.
In Python 2.x it is as simple as:
>>> my_list = [1, 2, 3, 4, 5]
>>> import operator
>>> reduce(operator.truediv, my_list)
0.008333333333333333
In Python 3.x the example becomes a bit more complicated:
>>> my_list = [1, 2, 3, 4, 5]
>>> import operator, functools
>>> functools.reduce(operator.truediv, my_list)
0.008333333333333333
We can also use from functools import reduce
to avoid calling reduce
with the namespace name.