Compreendendo as funções Map, Filter e Reduce do Python

O Python fornece várias ferramentas de programação funcional que podem simplificar tarefas de processamento de dados. Entre elas estão as funções map, filter e reduce. Essas funções permitem que você execute operações em coleções de dados de forma concisa e legível. Este artigo explora cada uma dessas funções e fornece exemplos para ajudar você a entender como usá-las efetivamente.

A função map

A função map aplica uma função dada a todos os itens em uma lista de entrada (ou qualquer iterável) e retorna um iterador que produz os resultados. Isso é particularmente útil para aplicar transformações a cada elemento em uma coleção.

Sintaxe

map(function, iterable)

Exemplo

Suponha que você queira elevar ao quadrado cada número em uma lista. Você pode usar map para conseguir isso:

# Define a function to square a number
def square(x):
    return x * x

# List of numbers
numbers = [1, 2, 3, 4, 5]

# Apply the function to each item in the list
squared_numbers = map(square, numbers)

# Convert the result to a list and print
print(list(squared_numbers))  # Output: [1, 4, 9, 16, 25]

A função filter

A função filter é usada para filtrar elementos de um iterável com base em uma função que retorna True ou False. Somente os elementos para os quais a função retorna True são incluídos no resultado.

Sintaxe

filter(function, iterable)

Exemplo

Por exemplo, se você quiser manter apenas os números pares de uma lista, você pode usar filter:

# Define a function to check if a number is even
def is_even(x):
    return x % 2 == 0

# List of numbers
numbers = [1, 2, 3, 4, 5]

# Filter the list using the function
even_numbers = filter(is_even, numbers)

# Convert the result to a list and print
print(list(even_numbers))  # Output: [2, 4]

A função reduce

A função reduce, que faz parte do módulo functools, aplica uma função binária cumulativamente aos itens de um iterável, da esquerda para a direita, de modo a reduzir o iterável a um único valor.

Sintaxe

from functools import reduce

reduce(function, iterable[, initializer])

Exemplo

Por exemplo, para encontrar o produto de todos os números em uma lista, você pode usar reduce:

from functools import reduce

# Define a function to multiply two numbers
def multiply(x, y):
    return x * y

# List of numbers
numbers = [1, 2, 3, 4, 5]

# Reduce the list using the function
product = reduce(multiply, numbers)

# Print the result
print(product)  # Output: 120

Conclusão

As funções map, filter e reduce são ferramentas poderosas para programação funcional em Python. Elas fornecem soluções elegantes para aplicar transformações, filtrar dados e reduzir coleções a um único valor. Ao dominar essas funções, você pode escrever um código mais conciso e expressivo para uma variedade de tarefas de processamento de dados.