Welcome to the next pikoTutorial!
The reduce
function is a powerful tool placed in the functools
module that facilitates the cumulative application of a function to the items of an iterable (from left to right), to reduce them to a single value. Initially introduced in Python 2, later moved to functools in Python 3, reduce is similar to the concept of folding in functional programming languages.
Syntax and parameters
The syntax of the reduce function is:
reduce(function, iterable[, initializer])
- function: this is a function that takes two arguments and returns a single value. It is applied cumulatively to the items of iterable.
- iterable: this is a sequence of elements like a list, tuple, etc. that reduce operates on sequentially.
- initializer (optional): this is an initial value that serves as the starting point for the cumulative computation. If provided, reduce starts with this value and the first item of the iterable.
How to use it
Let’s illustrate it with a simple example to find the product of elements in a list:
from functools import reduce
numbers = [1, 2, 3, 4, 5]
product = reduce(lambda x, y: x * y, numbers)
print(product)
This code generates the result of multiplication 1 * 2 * 3 * 4 * 5 which is 120. If you add an initializer, for example value 10
:
product = reduce(lambda x, y: x * y, numbers, 10)
The result will be equal to 1200 because now it starts with the value 10: 10 * 1 * 2 * 3 * 4 * 5.