Paulo GP

Posted on

# Introduction

In this chapter, we'll explore the use of lambda functions in Python, using a math theme to illustrate their functionality. Lambda functions, also known as anonymous functions, are a way to create small, one-time-use functions in Python. They are often used in situations where a short, simple function is needed, such as when passing a function as an argument to another function.

# Creating a Simple Lambda Function

Let's start by creating a simple lambda function that takes two arguments and returns their sum:

``````add = lambda x, y: x + y
``````

In this example, we create a lambda function that takes two arguments `x` and `y` and returns their sum. We assign this lambda function to a variable `add` so that we can use it like any other function:

``````result = add(3, 4)
print(result)
``````
``````Output:
7
``````

# Using Multiple Arguments

Lambda functions can also take multiple arguments. For example, let's create a lambda function that calculates the average of three numbers:

``````average = lambda x, y, z: (x + y + z) / 3
``````

In this example, the lambda function `average` takes three arguments representing three numbers, and returns their average. We can call this lambda function by passing three arguments inside the parentheses:

``````result = average(3, 4, 5)
print(result)
``````
``````Output:
4.0
``````

# Using Lambda Functions with Map and Filter

Lambda functions are often used as arguments to other functions, such as the `map` and `filter` functions. For example, let's say we have a list of numbers and we want to create a new list with the squares of these numbers. We can use the `map` function with a lambda function to achieve this:

``````numbers = [1, 2, 3, 4, 5]
squares = list(map(lambda x: x**2, numbers))
print(squares)
``````
``````Output:
[1, 4, 9, 16, 25]
``````

In this example, we use the `map` function to apply the lambda function to each element of the `numbers` list. The lambda function takes one argument `x` and returns its square. The `map` function returns an iterator, so we need to convert it to a list to see the result.

We can also use the `filter` function with a lambda function to filter a list based on a condition. For example, let's say we want to create a new list with only the even numbers from the original list. We can use the `filter` function with a lambda function to achieve this:

``````numbers = [1, 2, 3, 4, 5]
evens = list(filter(lambda x: x % 2 == 0, numbers))
print(evens)
``````
``````Output:
[2, 4]
``````

In this example, we use the `filter` function to apply the lambda function to each element of the `numbers` list. The lambda function takes one argument `x` and returns `True` if it is even, and `False` otherwise. The `filter` function returns an iterator with only the elements for which the lambda function returns `True`, so we need to convert it to a list to see the result.

# Conclusion

Lambda functions offer a concise and flexible way to create small, one-time-use functions in Python. They can be used to perform simple calculations, manipulate data, and pass functions as arguments to other functions.