# Python Lambda Functions: A Compact Guide

Lambda functions, also known as anonymous functions, are a concise and powerful feature in Python that allows you to create small, unnamed functions on the fly.

Lambda functions are particularly useful when you need a quick function for a short period and don't want to formally define a full function using the `def` keyword.

In this guide, we'll explore the syntax and various use cases of Python lambda functions.

## Syntax of Lambda Functions:

The syntax of a lambda function is straightforward:

``````lambda arguments: expression
``````
• `lambda`: Keyword indicating the creation of a lambda function.
• `arguments`: Parameters the lambda function takes.
• `expression`: Single expression defining the function's behavior.

## Example 1: Basic Lambda Function

Let's start with a simple example of a lambda function that adds two numbers:

``````add = lambda x, y: x + y
result = add(3, 4)
print(result)  # Output: 7
``````

In this example, the lambda function `lambda x, y: x + y` takes two arguments (`x` and `y`) and returns their sum.

## Example 2: Lambda Function in a Higher-Order Function

Lambda functions are often used with higher-order functions like `map()`, `filter()`, and `sorted()`:

``````numbers = [1, 4, 2, 7, 5]

# Using lambda with map to square each number
squared_numbers = list(map(lambda x: x**2, numbers))
print(squared_numbers)  # Output: [1, 16, 4, 49, 25]

# Using lambda with filter to select even numbers
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  # Output: [4, 2]

# Using lambda with sorted to sort numbers in descending order
sorted_numbers = sorted(numbers, key=lambda x: -x)
print(sorted_numbers)  # Output: [7, 5, 4, 2, 1]
``````

In these examples, lambda functions are used to define the behavior for mapping, filtering, and sorting operations.

## Example 3: Lambda Function as an Argument

Lambda functions are useful as arguments in functions that accept other functions, like `sorted()`:

``````students = [
{"name": "Alice", "grade": 88},
{"name": "Bob", "grade": 95},
{"name": "Charlie", "grade": 90}
]

# Sorting students by grade using lambda as the key function
sorted_students = sorted(students, key=lambda student: student["grade"], reverse=True)
print(sorted_students)
# Output: [{'name': 'Bob', 'grade': 95}, {'name': 'Charlie', 'grade': 90}, {'name': 'Alice', 'grade': 88}]
``````

Here, the lambda function defines the sorting criteria based on the "grade" key in the student dictionaries.

## Example 4: Lambda Function in Calculations

Lambda functions are handy for one-off calculations or transformations:

``````# Celsius to Fahrenheit conversion
celsius_to_fahrenheit = lambda celsius: (celsius * 9/5) + 32
temperature_celsius = 25
temperature_fahrenheit = celsius_to_fahrenheit(temperature_celsius)
print(temperature_fahrenheit)  # Output: 77.0
``````

In this example, the lambda function `lambda celsius: (celsius * 9/5) + 32` converts Celsius to Fahrenheit.

## Conclusion:

Lambda functions in Python are a concise and expressive way to create small, throwaway functions without the need for a formal function definition.

They shine in scenarios where a short, simple function is required, especially as arguments to higher-order functions or for quick calculations.

While lambda functions have their use cases, it's essential to strike a balance and choose clarity over brevity when the code becomes more complex.

Incorporate lambda functions judiciously into your Python code, and you'll find them to be a valuable tool in your programming arsenal.