In this article, we will discuss lambda function definition and usages in Python. Lambda functions are also known as anonymous function or lambda expression.
Lambda function definition
A lambda function/expression is a notation used in the lambda calculus.
A normal function is , where x is a variable
f(x) = M
but a lambda function as shown below
λx.M
Where M is an expression uses x.
The python syntax for lambda function is
lambda x: M
Simple example of Lambda function
Let’s see a simple example of lambda function in Python. Below lambda function will add 1 to the argument.
increment = lambda x: x + 1
print(increment (9))
Output
10
In the above example, lambda x : x + 1 is the lambda function , it follows lambda function syntax (lambda x: M) and we can see M is x+1.
The lambda function lambda x : x + 1 is same as normal function as shown below :
def increment(x):
return x+1
When to use Lambda functions?
Lambda functions are nameless functions it can be used for a short period (sorting, filtering, etc). We can use the lambda function with higher-order functions. Higher-order functions simply mean a function that takes another function as argument.
The map, filter, reduce functions can use lambda functions. Let’s look into some examples.
Example usage with sorted function
We can sort data using sorted and lambda function. Suppose we want to sort list of students by age we can use lambda function as key in sorted function
students = [
{"name": "Tony", "age": 13},
{"name": "Robert", "age": 8},
{"name": "Lucy", "age": 15},
{"name": "Alice", "age": 6},
]
sorted_by_age = sorted(students, key=lambda student: student["age"], reverse=True)
print(sorted_by_age)
Output
[{'name': 'Lucy', 'age': 15},
{'name': 'Tony', 'age': 13},
{'name': 'Robert', 'age': 8},
{'name': 'Alice', 'age': 6}]
We can see that list is sorted by age of the student. Here we used lambda function, it means for each student, give me the value I should sort by.
lambda student: student["age"]
Example usage with map function
Suppose we have a list of numbers and we want to double every element in the list.
numbers = [10,20,30,40,50]
double_num = map(lambda x : x*2 , numbers)
print(list(double_num))
From the above example, we can see lambda function lambda x: x*2 is used as the first argument to map function and every list element gets multiplied by 2.
Output
[20, 40, 60, 80, 100]
Example usage with filter function
Suppose we have a list of numbers and when we want to filter even numbers from the list we can use filter function with lambda expression.
numbers = [1,20,3,46,35,50,4,27]
even_nums = filter (lambda x : x%2 ==0 , numbers)
print(list(even_nums))
Here we have passed a lambda function(lambda x : x%2 ==0) to filter the even numbers.
Output
[20, 46, 50, 4]
Example usage with reduce function
Suppose we have a list of numbers, and when we want to find the sum of all elements we can use reduce function.
from functools import reduce
numbers = [10,20,30,40]
num_sum = reduce(lambda a,b : a + b , numbers )
print(f"Sum is : {num_sum}")
Output
Sum is : 100
From the above example , we can see the lambda expression lambda a,b : a + b is passed as an argument to reduce function.
Conclusion
In conclusion, we have discussed definition and usages of lambda functions in Python.