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.