functools.reduce in Python
In Python, the reduce is a function of the functools module. This function will return a single value result by solving a sequence on a two-argument function. In other words, this is useful particularly when we want to reduce the set of values to a single one.
Syntax
The signature for the reduce function is as shown below. Here, in presence of the optional initializer, it will serve as a default in the calculation when an iterable is empty. However, if the initializer is not given and iterable contains only one item, it will return the first item.
reduce(func,iterable, initializer)
Python functools.reduce Example:
Example 1: In this case, we are computing the summation of a numbers in the list using the built-in add module of an operator.
from functools import reduce
from operator import add
l = [112, 211, 135, 524, 655]
#Using reduce method and printing
result = reduce(add, l)
print("Sum of numbers in list is ",result)
Output
Sum of numbers in list is 1637
Example 2: In this case, we are computing the multiplication of a numbers in the list.
from functools import reduce
# Function computing multiplication
def product(num1,num2):
res=num1*num2
print("Computing ",num1," * ",num2," = ",res)
return res
#Computing the product of numbers in the list
product = reduce(product,[1,2,3,4,5])
print("Final answer is ",product)
Output
Computing 1 * 2 = 2
Computing 2 * 3 = 6
Computing 6 * 4 = 24
Computing 24 * 5 = 120
Final answer is 120
Example 3: In this case, we are concatenating the words in the tuple to form a single string.
from functools import reduce
def concate(string1, string2):
return (string1+string2)
# Using tuple to get the words
t = ("Life","is","a","book")
#Using reduce to concate the words in tuple
s = reduce(concate,t)
print("String is ",s)
Output
Lifeisabook
Conclusion
Hence, We can use the reduce method as an alternative to the iteration if we want to get the single value from an iterable.
References
Happy Learning 🙂