Python Lambda Functions
Python uses the lambda
keyword to create anonymous functions.
A lambda
function is a small, anonymous, inline function that can have any number of arguments but only one expression. Unlike a full function defined using the def
keyword, a lambda
function doesn't need a function name.
Lambda functions are typically used for writing simple, single-line functions, especially when functions are passed as arguments, such as in map()
, filter()
, and reduce()
.
Characteristics of Lambda Functions:
Anonymous: Lambda functions don't have a name and are used by assigning them to variables or passing them as arguments to other functions.
Single-line: Lambda functions usually consist of one line, making them ideal for writing simple functions.
Lambda Syntax:
lambda arguments: expression
lambda
: A Python keyword used to define lambda functions.arguments
: The list of arguments that can have zero or more parameters, but must appear before the colon:
.expression
: The single expression that evaluates and returns the result of the function.
Example 1: Lambda Function with No Parameters
f = lambda: "Hello, world!" print(f()) # Output: Hello, world!
Output:
Hello, world!
Example 2: Lambda Function with One Parameter
Here’s an example where a lambda
function accepts one argument a
, adds 10 to it, and returns the result:
x = lambda a: a + 10 print(x(5))
Output:
15
Example 3: Lambda Function with Two Parameters
Lambda functions can take multiple parameters, separated by commas. Below is an example where two parameters a
and b
are multiplied:
x = lambda a, b: a * b print(x(5, 6))
Output:
30
Example 4: Lambda Function with Three Parameters
Here’s an example where the lambda
function takes three parameters and returns their sum:
x = lambda a, b, c: a + b + c print(x(5, 6, 2))
Output:
13
Lambda Functions with Built-in Functions
Lambda functions are often used with built-in functions such as map()
, filter()
, and reduce()
to perform operations on collections.
Example 5: Using Lambda with map()
In this example, map()
applies a lambda
function to square each element in the numbers
list:
numbers = [1, 2, 3, 4, 5] squared = list(map(lambda x: x**2, numbers)) print(squared) # Output: [1, 4, 9, 16, 25]
Output:
[1, 4, 9, 16, 25]
Example 6: Using Lambda with filter()
The filter()
function, combined with a lambda
, can be used to filter out even numbers from a list:
numbers = [1, 2, 3, 4, 5, 6, 7, 8] even_numbers = list(filter(lambda x: x % 2 == 0, numbers)) print(even_numbers) # Output: [2, 4, 6, 8]
Output:
[2, 4, 6, 8]
Example 7: Using Lambda with reduce()
This example demonstrates how to calculate the cumulative product of a sequence using reduce()
and a lambda
expression:
from functools import reduce numbers = [1, 2, 3, 4, 5] # Use reduce() and lambda to calculate the product product = reduce(lambda x, y: x * y, numbers) print(product) # Output: 120
Output:
120
In the above example, the reduce()
function iterates over the numbers
list, applying the lambda
function to continuously update the cumulative product. The result is the product of 1 * 2 * 3 * 4 * 5, which equals 120.