How to use the Python reduce() Function
reduce() function in Python loops through an iterable and calls a function using each element. Each iteration takes the result from the previous function and uses it until the end of the sequence is complete.
This may sound a little confusing, but in practice is rather simple to understand how the
reduce() function works. Let's look at the syntax of
reduce() then at some examples.
The first argument of
reduce() is the function to use, the second is the sequence. You can supply an optional start value as the third argument.
reduce(function, sequence[, initial])
Note – If you are using Python 3, you will need to import reduce from
functools like this:
from functools import reduce
Sum of All Numbers in a List
In the example below, we will get the sum of all numbers in a list using a function that accepts two arguments which will be called by
from functools import reduce def add_nums(a, b): return a + b numbers = [4, 3, 7, 8, 1, 9] result = reduce(add_nums, numbers) print(result)
Here is another example demonstrating the use of
reduce() with an initial value supplied:
from functools import reduce def add_nums(a, b): return a + b numbers = [4, 3, 7, 8, 1, 9] result = reduce(add_nums, numbers, 10) print(result)
The advantage of using the Python
reduce() function of creating a function and performing a for loop is that it can be faster. It was moved to the
functools module in Python 3 because it tends to only provide a clearer syntax in simple use cases.