- Data Structure
- Networking
- RDBMS
- Operating System
- Java
- MS Excel
- iOS
- HTML
- CSS
- Android
- Python
- C Programming
- C++
- C#
- MongoDB
- MySQL
- Javascript
- PHP
- Physics
- Chemistry
- Biology
- Mathematics
- English
- Economics
- Psychology
- Social Studies
- Fashion Studies
- Legal Studies
- Selected Reading
- UPSC IAS Exams Notes
- Developer's Best Practices
- Questions and Answers
- Effective Resume Writing
- HR Interview Questions
- Computer Glossary
- Who is Who
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.
To Continue Learning Please Login
Login with Google