- reduce is a built-in function in python module "__builtin__".
- It takes function as first argument and second argument as an sequence of items.
- It applies function on two arguments cumulatively to the items of a sequence from left to right and returns a single value.
- If initial is present, it is placed before the items of the sequence in the calculation, and serves as a default when the sequence is empty.
- It doesn't allow empty sequence.
Let's see examples
Let's sum all the elements in a list
traditional way
l = [1, 2, 3, 5, 6]
sum_of_numbers = 0
for num in l:
sum_of_numbers += num
print(sum_of_numbers)
# Output: 17
Let's do it using "reduce"
l = [1, 2, 3, 5, 6]
def sum_numbers(a, b):
return a + b
sum_of_numbers = reduce(sum_numbers, l)
print(sum_of_numbers)
# Output: 17
Let's find factorial of number 5
traditional way
num = 5
result = 1
for i in range(1, num+1):
result = result * i
print("Factorial of 5 = %s" % (result))
# Output: 120
Let's do it using "reduce"
num = 5
result = reduce(lambda x, y : x*y, range(1, num+1))
print("Factorial of 5 = %s" % (result))
# Output: 120
Let's find out max number in a list of numbers using "reduce" and "max"
l = [3, 1, 5, 10, 7, 6]
max_num = reduce(max, l)
print("max num = %s" % (max_num))
# Output: max num = 10
builtin
functional-programming
Python
reduce