Understanding Python Lambda Functions
A lambda function in Python is a small anonymous function that can take any number of arguments but can have only one expression. Lambda functions are often used for short periods where defining a full function would be unnecessary.
Syntax
lambda arguments: expression
The expression is executed, and the result is returned. Below are several examples illustrating how to use lambda functions effectively.
Examples
1. Basic Lambda Function
Here's a simple lambda function that adds 10 to its input:
x = lambda a: a + 10
print(x(5)) # Output: 15
2. Lambda Function with Multiple Arguments
This example demonstrates a lambda function that multiplies two arguments:
x = lambda a, b: a * b
print(x(5, 6)) # Output: 30
3. Summing Multiple Arguments
Here’s how to sum three numbers using a lambda function:
x = lambda a, b, c: a + b + c
print(x(5, 6, 2)) # Output: 13
Using Lambda Functions Inside Another Function
The real power of lambda functions becomes apparent when you use them as anonymous functions within other functions. Here’s an example:
Creating Doubling and Tripling Functions
This function returns a lambda that multiplies its input by a given number:
def myfunc(n):
return lambda a: a * n
Now, you can create a function that always doubles or triples its input:
mydoubler = myfunc(2)
print(mydoubler(11)) # Output: 22
mytripler = myfunc(3)
print(mytripler(11)) # Output: 33
Why Use Lambda Functions?
Lambda functions are useful when you need an anonymous function for a short period. They can be particularly handy in functional programming contexts, such as using them with functions like map()
, filter()
, and reduce()
.
Exercise
What will be the result of the following code?
x = lambda a, b: a - b
print(x(5, 3))
- 15
- 8
- 3
- 2
Conclusion
Lambda functions in Python provide a concise way to write small anonymous functions. They are particularly useful in cases where a simple operation is needed. Understanding how to use lambda functions can enhance your coding efficiency and flexibility.
0 Comments