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.