What is the lambda function in Python and why do we need it?


In this article, we will learn the lambda function in Python and why we need it and see some practical examples of the lambda function.

What is the lambda function in Python?

Lambda Function, often known as an 'Anonymous Function,' is the same as a normal Python function except that it can be defined without a name. The def keyword is used to define normal functions, while the lambda keyword is used to define anonymous functions. They are, however, limited to a single line of expression. They, like regular functions, can accept several parameters.

Syntax

lambda arguments: expression
  • This function accepts any number of inputs but only evaluates and returns one expression.

  • Lambda functions can be used wherever function objects are necessary.

  • You must remember that lambda functions are syntactically limited to a single expression.

  • Aside from other types of expressions in functions, it has a variety of purposes in specific domains of programming.

Why do we need a Lambda Function?

  • When compared to a normal Python function written using the def keyword, lambda functions require fewer lines of code. However, this is not quite true because functions defined using def can be defined in a single line. But, def functions are usually defined on more than one line.

  • They are typically employed when a function is required for a shorter period (temporary), often to be utilized inside another function such as filter, map, or reduce.

  • You can define a function and call it immediately at the end of the definition using the lambda function. This is not possible with def functions.

Simple Example of Python Lambda Function

Example

# input string 
inputString = 'TUTORIALSpoint'
 
# converting the given input string to lowercase and reversing it
# with the lambda function
reverse_lower = lambda inputString: inputString.lower()[::-1]

print(reverse_lower(inputString))

Output

On execution, the above program will generate the following output −

tniopslairotut

Using Lambda Function in condition checking

Example

# Formatting number to 2 decimal places using lambda function
formatNum = lambda n: f"{n:e}" if isinstance(n, int) else f"{n:,.2f}"
 
print("Int formatting:", formatNum(1000))
print("float formatting:", formatNum(5555.4895412))

Output

On execution, the above program will generate the following output −

Int formatting: 1.000000e+03
float formatting: 5,555.49

What is the difference between Lambda functions and def-defined functions?

Example

# creating a function that returns the square root of 
# the number passed to it
def square(x):
	return x*x


# using lambda function that returns the square root of 
# the number passed 
lambda_square = lambda x: x*x


# printing the square root of the number by passing the
# random number to the above-defined square function with the def keyword
print("Square of the number using the function with 'def' keyword:", square(4))

# printing the square root of the number by passing the
# random number to the above lambda_square function with lambda keyword
print("Square of the number using the function with 'lambda' keyword:", lambda_square(4))

Output

On execution, the above program will generate the following output −

Square of the number using the function with 'def' keyword: 16
Square of the number using the function with 'lambda' keyword: 16

As shown in the preceding example, the square() and lambda_square () functions work identically and as expected. Let's take a closer look at the example and find out the difference between them −

Using lambda function Without Using the lambda function
Single-line statements that return some value are supported. Allows for any number of lines within a function block.
Excellent for doing small operations or data manipulations. This is useful in cases where multiple lines of code are required.
Reduces the code readability We can improve readability by using comments and function explanations.

Python lambda function Practical Uses

Example

Using Lambda Function with List Comprehension

is_odd_list = [lambda arg=y: arg * 5 for y in range(1, 10)]
 
# looping on each lambda function and calling the function
# for getting the multiplied value
for i in is_odd_list:
	print(i())

Output

On execution, the above program will generate the following output −

5
10
15
20
25
30
35
40
45

On each iteration of the list comprehension, a new lambda function with the default parameter y is created (where y is the current item in the iteration). Later, within the for loop, we use i() to call the same function object with the default argument and obtain the required value. As a result, is_odd_list saves a list of lambda function objects.

Example

Using Lambda Function with if-else conditional statements

# using lambda function to find the maximum number among both the numbers
find_maximum = lambda x, y : x if(x > y) else y
 
print(find_maximum(6, 3))

Output

On execution, the above program will generate the following output −

6

Example

Using Lambda Function with Multiple statements

inputList = [[5,2,8],[2, 9, 12],[10, 4, 2, 7]]

# sorting the given each sublist using lambda function
sorted_list = lambda k: (sorted(e) for e in k)

# getting the second-largest element 
second_largest = lambda k, p : [x[len(x)-2] for x in p(k)]
output = second_largest(inputList, sorted_list)

# printing the second largest element
print(output)

Output

On execution, the above program will generate the following output −

[5, 9, 7]

Python lambda function with filter()

Example

inputList = [3, 5, 10, 7, 24, 6, 1, 12, 8, 4]

# getting the even numbers from the input list 
# using lambda and filter functions
evenList = list(filter(lambda n: (n % 2 == 0), inputList))
# priting the even numbers from the input list
print("Even numbers from the input list:", evenList)

Output

On execution, the above program will generate the following output −

Even numbers from the input list: [10, 24, 6, 12, 8, 4]

Python lambda function with map()

Python's map() function accepts a function and a list as arguments. The function is called with a lambda function and a list, and it returns a new list containing all of the lambda-changed items returned by that function for each item.

Example

Using lambda and the map() functions to convert all the list elements to lowercase

# input list
inputList = ['HELLO', 'TUTORIALSpoint', 'PyTHoN', 'codeS']

# converting all the input list elements to lowercase using lower()
# with the lambda() and map() functions and returning the result list
lowercaseList = list(map(lambda animal: animal.lower(), inputList))

# printing the resultant list
print("Converting all the input list elements to lowercase:\n", lowercaseList)

Output

On execution, the above program will generate the following output −

Converting all the input list elements to lowercase:
 ['hello', 'tutorialspoint', 'python', 'codes']

Conclusion

In this tutorial, we learned in-depth the lambda function in Python, with numerous examples. We also learned the difference between the lambda function and the def function.

Updated on: 15-Dec-2022

1K+ Views

Kickstart Your Career

Get certified by completing the course

Get Started
Advertisements