Reduce
Em Python, a função reduce()
é uma ferramenta poderosa para agregação de dados em iteráveis. Enquanto map()
e filter()
processam cada item individualmente, reduce()
acumula o resultado de aplicar uma função a pares de itens consecutivos, reduzindo a lista a um único resultado. Neste tutorial, vamos explorar o reduce()
em detalhes, entender seu funcionamento e aprender como utilizá-lo para realizar operações de redução em Python.
1. O que é reduce()
em Python?
A função reduce()
recebe dois argumentos: uma função e um iterável (como uma lista). A função é aplicada a dois itens consecutivos do iterável, e o resultado é usado como um dos itens na próxima chamada à função. Esse processo é repetido até que todos os itens do iterável sejam processados, reduzindo a lista a um único resultado.
A sintaxe básica é:
reduce(funcao, iteravel)
funcao
: A função que define a operação de redução.iteravel
: O iterável (como uma lista) que contém os dados a serem reduzidos.
Para usar reduce()
, você precisa importá-lo do módulo functools
:
from functools import reduce
2. Usando reduce()
para Agregação:
Exemplo 1: Somando uma Lista de Números:
from functools import reduce
numeros = [1, 2, 3, 4, 5]
soma = reduce(lambda x, y: x + y, numeros)
print(soma) # Saída: 15
Neste exemplo, a função lambda lambda x, y: x + y
é usada para somar todos os números na lista numeros
.
Exemplo 2: Concatenando Strings:
palavras = ["Olá", ", ", "mundo", "!"]
mensagem = reduce(lambda x, y: x + y, palavras)
print(mensagem) # Saída: "Olá, mundo!"
Neste exemplo, a função lambda é usada para concatenar as strings na lista palavras
.
O reduce()
é uma ferramenta útil para realizar operações de redução em iteráveis em Python. Ao utilizar o reduce()
, você pode agregar dados de forma eficiente e concisa, reduzindo uma lista a um único resultado. Embora não seja tão comum quanto map()
e filter()
, reduce()
ainda é valioso para situações em que você precisa aplicar operações complexas a pares consecutivos de itens em uma lista.