Vamos falar sobre a última redução, que é um pouco avançada e pode ser um pouco difícil de entender no início,
mas é bom saber que ela existe e você pode aprender mais sobre ela praticando e
lendo alguma documentação sobre seu próprio.
Agora, a redução não vem como parte da função interna do python.
Para usar reduzir, temos que fazer algo assim.
Agora, você nunca viu isso antes e é algo que veremos na seção de módulos do
curso.
Mas essencialmente o que está acontecendo aqui é quando baixamos o Python Interpreter e o pacote Python, em nosso
caso, este Reppel já faz isso por nós.
Podemos importar algo dessas fotos.
E as ferramentas funcionais são o que chamamos de cinto de ferramentas que podemos usar para ferramentas funcionais que vêm com a instalação
do Python.
E a partir daí, há uma função específica que podemos importar.
Portanto, estou dizendo, ei, das ferramentas de função deste conjunto de ferramentas, quero que você importe a função reduzir para
que possamos usá-la em nosso código novamente, algo que abordaremos mais tarde no curso.
Então, por enquanto, apenas copie e cole esta linha.
A seguir, vamos remover parte de nossa lista e usar reduza aqui.
Agora, com a redução, vamos precisar de algumas coisas.
Primeiro.
Precisamos da função.
E então precisamos da sequência ou dos dados.
Qual será a função, primeiro de tudo, nossos dados serão nossa lista, então direi
minha lista e a função reduzida nos permite fazer algo interessante.
Posso dar a ele, digamos, uma função.
E essa função, vamos chamá-la de acumulador.
E o acumulador leva dois parâmetros, e lembre-se, isso vai ser chamado de reduzir, então, reduzir vai se
encarregar de dar esses dois parâmetros a partir dos dados que damos, que é a
minha lista.
O primeiro parâmetro vai ser o que chamamos de acumulação, ou no meu caso, Axi.
E então aqui está o item.
Agora, o que fica realmente interessante é que, quando passarmos pela primeira vez minha lista da redução, obteremos o
primeiro item.
O primeiro item estará neste parâmetro.
No entanto, o que é esse axi inicialmente?
Bem, se eu apenas remover os colchetes aqui.
E assim você reduz você vê que nós temos a função.
A sequência, que no nosso caso será a nossa lista e então a inicial e inicial é o que o acumulador vai
ser.
Então, mais uma vez, digamos que teremos a função de acumulador que ainda não chamaremos.
Reduzir vai fazer isso por nós.
Vou dar a lista.
Ou os dados que queremos iterar e, em seguida, darei a eles um valor inicial de zero.
Portanto, temos três.
Parâmetros aqui ou três argumentos que fornecemos.
Deixe-me fechar os colchetes onde você torna isso um pouco maior aqui e certifique-se de que eu consigo soletrar.
Agora, aqui, o primeiro item será o que for o primeiro item da minha lista.
E então o padrão do acumulador será zero se não dermos nada a ele ou, em nosso caso,
dissemos que o acumulador será zero.
Portanto, a primeira coisa que faremos é retornar o acumulador mais o item.
OK, então vamos analisar um por um.
Na verdade, vou imprimir aqui o acumulador e o item para que possamos ver e depois executarei
este código.
A linha 15 no objeto não é iterável.
E isso é um pouco complicado, mas na verdade não precisamos mais da lista porque reduzir vai fazer algo
interessante para nós.
Portanto, vamos apenas remover isso por enquanto e retornar o que o reduzido fornece.
E a impressão se eu clicar, corra.
Olhe para isso.
Tudo bem, então o que aconteceu?
Vamos dar uma olhada.
Reduzir.
Nos permite reduzir algo, algum tipo de valor do iterável que damos.
Então, vamos passo a passo.
Temos minha lista e minha lista vai ser aplicada de acumulador a reduzido.
O acumulador vai levar minha lista.
E a primeira coisa que ele fará na primeira passagem é dizer, ei, qual será o meu
acumulador?
Vou defini-lo como zero.
Portanto, a primeira passagem pelo acumulador será zero.
Um item vai ser um, que é o que vemos aqui.
E vamos adicionar zero mais um.
Então, agora nós devolvemos um.
Agora, a segunda passagem para.
O que vai acontecer a segunda passagem pelo acumulador vai ser o que, essa volta?
Portanto, a próxima passagem para o que quer que seja retornado será preenchida no acumulador, portanto, em nosso
caso, zero mais um será um.
Um item será dois, um mais dois será três, então um mais dois é igual a três.
Portanto, da próxima vez em que o acumulador será três.
E enquanto a gente passa vai ter três também, como você pode ver aqui.
E três mais três são seis.
Acabamos de acumular todos esses valores e retornamos um único.
Número seis, reduzimos nossa lista a algum tipo de dados que manipulamos usando, em nosso caso, o
acumulador.
Mas eu poderia ter feito qualquer coisa que quisesse aqui.
Portanto, se, por exemplo, alterar para diferente de 10, o que você acha que acontecerá se eu clicar em executar?
Eu recebo 16 porque comecei meu acumulador inicial com 10, então era 10 mais um então, e assim por diante.
Agora reduz muito, muito poderoso porque você pode fazer muitas coisas com ele.
É muito, muito flexível.
E, na verdade, por baixo do capô, funções como o Filtro de Mapa estão na verdade usando esta redução embaixo do capô para que
você possa construir seu próprio mapa e função de filtro usando reduzir.
Novamente, reduzir é um pouco difícil de entender no início e requer um pouco de prática para realmente
usá-lo.
Mas é uma daquelas coisas que os programadores avançados realmente amam e você verá mais e mais ao longo de
sua carreira à medida que fica cada vez melhor.
Te vejo no próximo.
Bye Bye.