Coletânea Python do ZERO às Redes Neurais Artificiais
Reduce
Finalizando essa parte onde exploramos algumas possibilidades mais
avançadas de tratamento de dados a partir de listas, vamos entender uma função que é bastante utilizada, a chamada função reduce( ).
A função reduce( ) por si só não é nativa das bibliotecas pré-carregadas
em Python, sendo assim, é necessário realizar a importação desse módulo/pacote da biblioteca functools, isso é feito pelo simples comando from functools import reduce.
Em seguida criamos uma simples função soma, que recebe dois números
e retorna a soma dos mesmos, até aqui nada de novo.
Na sequência vamos reutilizar a variável lista que usamos em map( ),
mas dessa vez, criamos uma variável de nome resultado que chama a função reduce( ) repassando como parâmetros para a mesma nossa função soma seguido de lista.
Vamos procurar entender o que de fato acontece aqui. A função reduce(
) em si normalmente é utilizada para realizar o agrupamento dos dados de uma lista, em nosso exemplo, podemos realizar a soma de todos elementos da mesma obtendo um novo dado.
A função reduce( ) pode sua vez recebe sempre dois parâmetros, que função será utilizada e sobre quais dados será aplicada a função, respectivamente.
Nesse caso, a ideia é que seja realizada a soma do primeiro elemento de
nossa lista com o segundo elemento, este resultado será somado com o terceiro elemento, este resultado será somado com o quarto elemento, repetindo esse processo até o último elemento da lista, se forma sequencial e sempre respeitando a função que declaramos, somando sempre dois valores.
O resultado da soma de 1+2=3, 3+3=6, 6+4=10, 10+5=15, 15+6=21,
21+7=28, 28+8=36, 36+9=45, 45+10=55, retorna o valor 55.