Table of contents
1.
Introduction
2.
What is the reduce() function in Python?
3.
How Python reduce() Function Works?
4.
How do we use the reduce function in Python?
4.1.
Syntax of reduce() function in Python with two arguments
4.2.
Syntax of reduce() function in Python with three arguments
4.3.
Implementation of reduce() in Python
4.4.
Python
5.
Examples of Reduce() Function in Python
5.1.
Example 1: Summing Numbers
5.2.
Python
5.3.
Example 2: Finding Maximum Element
5.4.
Python
5.5.
Example 3: Concatenating Strings
5.6.
Python
6.
Why do we use reduce() in Python?
7.
Difference between Python reduce() and accumulate() functions
8.
Advantages of using reduce() Python
9.
Disadvantages of using reduce() Python
10.
Frequently Asked Questions
10.1.
How do you reduce data in Python?
10.2.
Can reduce() be used with functions that have more than two arguments?
10.3.
How does reduce() behave when applied to an empty list?​​
10.4.
How can reduce() be replaced by a for-loop in Python?
11.
Conclusion
Last Updated: Aug 22, 2024
Medium

reduce() Function in Python

Author Rupal Saluja
0 upvote
Career growth poll
Do you think IIT Guwahati certified course can help you in your career?

Introduction

reduce() function in Python is a function that simplifies a list or sequence into a single value by applying a specific function to its elements. It works by repeatedly applying the function to the current result and the next item in the sequence. This makes reduce() ideal for tasks like summing, multiplying, or combining values.

reduce function in python

In this blog, we will discuss various aspects of one of the most important functions in Python- reduce function in Python. This includes an introduction to reduce in Python, the method of use of reduce in Python, and the advantages and disadvantages of reduce in Python.

What is the reduce() function in Python?

The reduce() function in python permits a functional approach to Python programming. It gives you a single value for a set of values by reducing a list to a single cumulative value. For example, if you have a list of scores and you want to compute an average score, you can reduce that list using the reduce function in Python.

This is done by following rolling computation, where we can compute the required value by going through all of the data from beginning to end. In this case, each result is dependent on the last computed result. For Example, if you calculate the average in a usual way, we sum up all the values. The reduce function in Python does not work like that. It adds up the first and second values and mark it as the new first value. Also, the third value becomes the new second value. This way computation continues. This process is known as rolling computation.

The reduce() function in Python is similar to its for loop but much better and faster. This is because it is an in-built function.

How Python reduce() Function Works?

  • Input: Accepts a function and an iterable.
  • Function: Applies the function cumulatively to the items of the iterable, from left to right.
  • Output: Returns a single value after applying the function to all elements.

How do we use the reduce function in Python?

The reduce in Python resides in the functools module that is imported before the function is called. The functools module contains higher-order functions. The functions that use or return other functions are known as higher-order functions. You can use the import statement below for the same.

from functools import reduce


It takes two arguments as input- function and iterable.

  • function

The function argument must contain a valid, pre-defined function present in the Python library. In most cases, it is the lambda function.

  • iterable

The iterable argument can specify any iterable entity such as list, tuple, dictionary, etc.

The return value of reduce in Python is always a single value. This single value is obtained by applying the function in the function argument to the entity in the iterable argument.

Syntax of reduce() function in Python with two arguments

The complete syntax to apply reduce() in Python is given below.

from functools import reduce
output = reduce(function, iterable)


It starts with an import statement and uses an output variable to store the result. The reduce function is shown with two arguments- function and iterable.

Syntax of reduce() function in Python with three arguments

The reduce() in Python with three arguments is written as:

from functools import reduce
output = reduce(function, iterable[, initializer])


where, 

initializer is the third and optional argument. It is placed before the items of the entity while calculation, and serves as a default if the sequence is empty. If the initializer is not given and the sequence contains only one item, the first item is returned.

Implementation of reduce() in Python

There are two ways to use the reduce() in Python.

  • Using pre-defined function
  • Using Lambda function

Below is an example code to show both implementation types of reduce function in Python.

  • Python

Python

# Importing functools module
import functools

#Creating a function
def prod(x,y):
   return x*y
  
# Creating a list
list1 = [7, 12, 9, 4, 2]

# Using reduce with the pre-defined sum function
print("Product:", functools.reduce(prod, list1))

# Using reduce with lambda function
print("Product: ", end="")
print(functools.reduce(lambda num1, num2: num1*num2, list1))
You can also try this code with Online Python Compiler
Run Code


Output:

Sum: 6048
Sum: 6048


Explanation

Our iterable object is, list1: [7, 12, 9, 4, 2]. Our inner function, prod, takes in two arguments, x and y. The calculation will start by taking the first two elements of list1 and passing them into our prod function as the x and y arguments. The prod function returns the product 84. Reduce will then use this accumulated value as the new or updated x and uses the next element in list1, 9, as our new or updated y value. It then sends these values as x and y to our prod function, which returns product 756. This way, the cycle continues, and the final product comes as 6048 and is given as output.

Examples of Reduce() Function in Python

Example 1: Summing Numbers

  • Python

Python

from functools import reduce

numbers = [1, 2, 3, 4, 5]
sum = reduce(lambda x, y: x + y, numbers)
print(sum)
You can also try this code with Online Python Compiler
Run Code

 

Output

15

 

This example sums all elements in the list using the reduce() function.

Example 2: Finding Maximum Element

  • Python

Python

from functools import reduce

numbers = [3, 7, 2, 9, 5]
max = reduce(lambda x, y: x if x > y else y, numbers)
print(max)
You can also try this code with Online Python Compiler
Run Code

Output

9

 

This example finds the maximum element in the list using the reduce() function.

Example 3: Concatenating Strings

  • Python

Python

from functools import reduce

strings = ["Hello", " ", "World", "!"]
concatenated = reduce(lambda x, y: x + y, strings)
print(concatenated)
You can also try this code with Online Python Compiler
Run Code

Output

Hello World!

 

This example concatenates all strings in the list using the reduce() function.

Why do we use reduce() in Python?

There is a completely logical process behind the reduce function in Python. It takes a pre-defined function and applies it cumulatively to the whole iterable. This reduces the developer’s efforts and ambiguity. You can use the image below to understand the process behind the reduce function in Python.

working of reduce function in python

Difference between Python reduce() and accumulate() functions

The difference between reduce() and accumulate() functions are as follows:

Aspectreduce()accumulate()
Modulefunctoolsitertools
OperationReduces iterable to a single value using a functionProduces accumulated results of iterable values
Initial ValueRequires initial value as a parameter (optional)Does not require an initial value
ReturnsReturns a single valueReturns an iterable of accumulated results
Examplepython reduce(lambda x, y: x+y, [1, 2, 3, 4])python accumulate([1, 2, 3, 4], lambda x, y: x+y)
ResultReturns 10 (1+2+3+4)Returns [1, 3, 6, 10] (cumulative sums)

Advantages of using reduce() Python

There can be several advantages of using reduce in Python. Some prominent advantages are given below.

  • You can avoid rewriting the same logic or code, again and again, by using reduce in Python.
  • You can easily get the cumulative value for a set of values using reduce function in Python.
  • We can call Python functions several times anywhere in a program.
  • We can track a large Python program easily if divided into several functions.
  • You can reuse Python functions as many times as you want whether as inner or outer functions while implementing reduce in Python.

Disadvantages of using reduce() Python

There are a few disadvantages of using reduce in Python. Some of them are listed below.

  • The reduce function in Python can be difficult to read, which defeats the purpose of using Python which is considered easy to read.
  • Some functional optimization is not supported by the compiler.
  • The developer does not get to know the logic behind the in-built functions such as reduce in Python.
  • Functions use some extra machine code in the form of ‘call’ and ‘return’ statements.

Frequently Asked Questions

How do you reduce data in Python?

Using the reduce() function from the functools package, you can reduce data in Python. It iteratively applies a given function on each member of an iterable, accumulating a single result. Finding sums or products of items is one application for this.

Can reduce() be used with functions that have more than two arguments?

No, reduce() is designed to work with functions that accept exactly two arguments, applying the function cumulatively to the items in a sequence.

How does reduce() behave when applied to an empty list?​​

Without an initializer, reduce() raises a TypeError when applied to an empty list. If an initializer is provided, it returns the initializer value.

How can reduce() be replaced by a for-loop in Python?

You can replace reduce() with a for-loop by iterating through the sequence, starting with an initial value, and manually applying the operation, updating the accumulated result with each iteration.

Conclusion

Overall, we understood reduce function in python, its method of use, and its advantages and disadvantages. We also learned in brief about Python. 

We hope the above discussion helped you understand the concepts of reduce function in Python and can be used for reference whenever needed. 

To learn more about Python, you can refer to blogs on 

Visit our website to read more such blogs. Make sure you enroll in our courses, take mock tests, solve problems, and interview puzzles. Also, you can pay attention to interview stuff- interview experiences and an interview bundle for placement preparations. 

Live masterclass