Python lambda keyword is used to define anonymous functions, otherwise known as lambda functions in Python.
With the lambda keyword you can create anonymous functions on the fly.
While traditional function definitions have their place, the lambda keyword offers a compact and efficient alternative for simple, one-line functions.
Lambda functions are ideal when you need a short, simple function that doesn’t require a full function definition.
By eliminating the need to define a named function, you can write and use the function directly at the point of use, improving code readability.
Understanding Lambda Functions
Lambda functions, also known as anonymous functions, are small, throwaway functions that are defined without a name.
Unlike regular functions created using the def keyword, lambda functions are defined using the lambda keyword, followed by a list of arguments, a colon, and an expression.
The expression is the function’s body and specifies the operation to be performed.
Syntax:
lambda arguments: expression
Here are the common use cases of lambda functions:
Sorting
Lambda functions are often used to define custom sorting criteria when working with built-in sorting functions such as sorted() or list.sort().
names = ['Eve', 'Steve', 'Kenneth', 'Mary'] sorted_names = sorted(names, key=lambda x: x[0]) print(sorted_names)
Output:
['Eve', 'Kenneth', 'Mary', 'Steve']
You can pass a lambda function as the key parameter, specifying the attribute or condition on which the sorting should be based.
Filtering
Lambda functions are commonly used in conjunction with the filter() function to create compact filters based on specific conditions.
numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10] even_numbers = list(filter(lambda x: x % 2 == 0, numbers)) print(even_numbers)
Output:
[2, 4, 6, 8, 10]
The lambda function acts as the filtering criterion, returning True or False based on the given condition.
Mapping
Lambda functions can be used with the map() function to transform each element of an iterable according to a specific operation defined in the lambda function.
numbers = [1, 2, 3, 4, 5] squared_numbers = list(map(lambda x: x ** 2, numbers)) print(squared_numbers)
Output:
[1, 4, 9, 16, 25]
Conclusion
Python’s lambda keyword is a powerful tool for creating anonymous functions on the fly.
By eliminating the need for separate function definitions, lambda functions provide a concise and readable way to express simple operations and facilitate functional programming paradigms.
While lambda functions have their limitations, particularly in terms of complexity and lack of statements, they are incredibly useful for many common tasks.