‫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.