Resumo : neste tutorial, você aprenderá como usar a função reduzir() do Python para reduzir uma lista em um único valor.
Reduzindo uma lista
Às vezes, você deseja reduzir uma lista a um único valor. Por exemplo, suponha que você tenha uma lista de números :
scores = [75, 65, 80, 95, 50]
Linguagem de código: Python ( python )
E para calcular a soma de todos os elementos da scores
lista, você pode usar um for
loop como este:
scores = [75, 65, 80, 95, 50]
total = 0
for score in scores:
total += score
print(total)
Linguagem de código: Python ( python )
Saída:
365
Linguagem de código: Python ( python )
Neste exemplo, reduzimos a lista inteira a um único valor, que é a soma de todos os elementos da lista.
Introdução à função reduzir() do Python
Python oferece uma função chamada reduce()
que permite reduzir uma lista de forma mais concisa.
Aqui está a sintaxe da reduce()
função:
reduce(fn,list)
Linguagem de código: Python ( python )
A reduce()
função aplica a fn
função de dois argumentos cumulativamente aos itens da lista, da esquerda para a direita, para reduzir a lista a um único valor.
Ao contrário das funções map()
and filter()
, the reduce()
não é uma função integrada no Python. Na verdade, a reduce()
função pertence ao functools
módulo.
Para usar a reduce()
função, você precisa importá-la do functools
módulo usando a seguinte instrução no topo do arquivo:
from functools import reduce
Linguagem de código: Python ( python )
Observe que você aprenderá mais sobre os módulos e como usá-los no tutorial posterior.
O seguinte ilustra como usar a reduce()
função para calcular a soma dos elementos da scores
lista:
from functools import reduce
def sum(a, b):
print(f"a={a}, b={b}, {a} + {b} ={a+b}")
return a + b
scores = [75, 65, 80, 95, 50]
total = reduce(sum, scores)
print(total)
Linguagem de código: Python ( python )
Saída:
a=75, b=65, 75 + 65 = 140
a=140, b=80, 140 + 80 = 220
a=220, b=95, 220 + 95 = 315
a=315, b=50, 315 + 50 = 365
365
Linguagem de código: Python ( python )
Como você pode ver claramente na saída, a reduce()
função adiciona cumulativamente dois elementos da lista da esquerda para a direita e reduz a lista inteira em um único valor.
Para tornar o código mais conciso, você pode usar uma expressão lambda em vez de definir a sum()
função:
from functools import reduce
scores = [75, 65, 80, 95, 50]
total = reduce(lambda a, b: a + b, scores)
print(total)
Linguagem de código: Python ( python )
Resumo
- Use a função Python
reduce()
para reduzir uma lista em um único valor.