DEV Community

Carlos Armando Moreira
Carlos Armando Moreira

Posted on

Understanding Lambda, Map, and Filter in Python

Introduction

In the world of programming, writing efficient and readable code is essential. In Python, tools like lambda, map, and filter offer elegant and concise ways to manipulate data and apply transformations quickly. In this post, we'll explore each of them, understand their syntax, and look at simple examples that demonstrate how they can be combined to solve problems concisely.

What is a Lambda Function?

A lambda function is a quick and compact way to create anonymous functions in Python. They are useful when you need a "disposable" function—one that will only be used once and doesn't need a name.

Basic syntax:

lambda arguments: expression
Enter fullscreen mode Exit fullscreen mode

Example:

# Lambda function to add two numbers
add = lambda x, y: x + y
print(add(5, 3))  # Output: 8
Enter fullscreen mode Exit fullscreen mode

Map: Applying a Function to a List

The map function is used to apply a function to all items in a list (or another iterable), returning an iterator.

Example:

numbers = [1, 2, 3, 4]
squares = map(lambda x: x**2, numbers)
print(list(squares))  # Output: [1, 4, 9, 16]
Enter fullscreen mode Exit fullscreen mode

In this example, the lambda function quickly defines how to square each number.

Filter: Filtering Values from a List

The filter function is used to select only the elements of an iterable that meet a condition, defined by a function.

Example:

numbers = [1, 2, 3, 4, 5, 6]
evens = filter(lambda x: x % 2 == 0, numbers)
print(list(evens))  # Output: [2, 4, 6]
Enter fullscreen mode Exit fullscreen mode

Here, the lambda function checks which numbers are even (x % 2 == 0).

Combining Lambda, Map, and Filter

You can combine lambda, map, and filter to create powerful and compact solutions.

Practical example: Let's take a list of numbers, square the even ones, and discard the odd ones:

numbers = [1, 2, 3, 4, 5, 6]
result = map(lambda x: x**2, filter(lambda x: x % 2 == 0, numbers))
print(list(result))  # Output: [4, 16, 36]
Enter fullscreen mode Exit fullscreen mode

Here:

  • filter removes odd numbers.
  • map squares the remaining numbers.

Conclusion

Lambda, map, and filter are techniques that can significantly simplify your code, especially when you need to perform quick transformations or filter data. The key is to practice and recognize the right moments to use them.

Top comments (0)