Parlons de la dernière réduction, et celle-ci est un peu avancée et peut être un peu difficile à appréhender au début, mais
il est bon de savoir qu'elle existe et vous pouvez en apprendre plus en la pratiquant et en
lisant de la documentation sur le tien.
Maintenant, reduce ne fait pas partie de la fonction intégrée de python.
Pour que nous puissions utiliser réduire, nous devons faire quelque chose comme ça.
Maintenant, vous n'avez jamais vu cela auparavant et c'est quelque chose que nous allons aborder dans la section modules
du cours.
Mais essentiellement, ce qui se passe ici, c'est lorsque nous avons téléchargé Python Interpreter et le package Python, dans
notre cas, ce Reppel le fait déjà pour nous.
Nous pouvons importer quelque chose à partir de ces photos.
Et les outils func sont ce que nous appelons une ceinture à outils que nous pouvons utiliser pour les outils fonctionnels fournis avec l'installation
de Python.
Et à partir de là, il y a une fonction spécifique que nous pouvons importer.
Donc, je dis, hé, à partir des outils func de cette ceinture à outils, je veux que vous importiez la fonction de réduction afin que
nous puissions l'utiliser à nouveau dans notre code, quelque chose que nous couvrirons plus tard dans le cours.
Donc pour l'instant, copiez et collez simplement cette ligne.
Ensuite, supprimons une partie de notre liste et utilisons ici reduce.
Maintenant, avec reduce, nous allons avoir besoin de quelques petites choses.
D'abord.
Nous avons besoin de la fonction.
Et puis nous avons besoin de la séquence ou des données.
Alors quelle va être la fonction, tout d'abord, nos données seront notre ma liste, donc je vais
dire ma liste et la fonction réduite nous permet de faire quelque chose d'intéressant.
Je peux lui donner, disons, une fonction.
Et cette fonction, nous l'appellerons l'accumulateur.
Et l'accumulateur prend deux paramètres, et rappelez-vous, cela va être appelé par reduce, donc reduce va être chargé
de donner ces deux paramètres à partir des données que nous lui donnons, qui sont
ma liste.
Le premier paramètre va être ce que nous appelons l'accumulation, ou dans mon cas, l'Axi.
Et puis voici l'article.
Maintenant, là où cela devient vraiment intéressant, c'est que lorsque nous transmettons pour la première fois ma liste à partir de la réduction, nous obtenons le
premier élément.
Le premier élément sera dans ce paramètre.
Cependant, quel est cet axe au départ ?
Eh bien, si je supprime simplement les crochets ici.
Et donc vous réduisez vous voyez que nous avons la fonction.
La séquence, qui dans notre cas sera notre liste, puis l'initiale et l'initiale est ce que va être
l'accumulateur.
Donc encore une fois, disons que nous allons avoir la fonction d'accumulateur que nous n'allons pas encore
appeler.
Réduire va le faire pour nous.
Je vais lui donner la liste.
Ou les données que nous voulons parcourir et ensuite je vais lui donner une valeur initiale de zéro.
Nous en avons donc trois.
Paramètres ici ou trois arguments que nous lui donnons.
Permettez-moi de fermer les parenthèses où vous agrandissez un peu cela ici et assurez-vous que je peux épeler.
Maintenant, ici, le premier élément sera le premier élément de ma liste.
Et puis l'accumulateur va passer par défaut à zéro si nous ne lui donnons rien ou dans notre cas, nous avons
dit que l'accumulateur va être à zéro.
Donc, la première chose que nous allons faire est de retourner l'accumulateur plus l'article.
OK, alors allons-y un par un.
Je vais en fait imprimer ici l'accumulateur et l'élément juste pour que nous puissions voir, puis je vais exécuter
ce code.
La ligne 15 dans l'objet n'est pas itérable.
Et c'est un peu délicat, mais en fait nous n'avons plus besoin de la liste parce que reduce va faire quelque
chose d'intéressant pour nous.
Alors supprimons cela pour l'instant et renvoyons simplement ce que la réduction nous donne.
Et l'impression si je clique, cours.
Regarde ça.
D'accord, alors qu'est-ce qui vient de se passer ?
Regardons.
Réduire.
Nous permet de réduire quelque chose, une sorte de valeur de l'itérable que nous lui donnons.
Alors allons-y étape par étape.
Nous avons ma liste et ma liste va être appliquée à l'accumulateur via réduit.
L'accumulateur va prendre ma liste.
Et la première chose qu'il va faire lors du premier passage va dire, hé, que va être mon accumulateur
?
Je vais le remettre à zéro.
Ainsi, le premier accumulateur de passage sera nul.
Un élément va en être un, c'est ce que nous voyons ici.
Et nous allons l'ajouter zéro plus un.
Alors maintenant, nous en avons retourné un.
Maintenant, la deuxième passe à.
Que va-t-il se passer le deuxième passage dans l'accumulateur va être quoi, ce retour ?
Ainsi, le prochain passage à tout ce qui est renvoyé sera rempli dans l'accumulateur, donc dans notre
cas, zéro plus un sera un.
Un élément sera deux, un plus deux va être trois, donc un plus deux égale trois.
Donc, la prochaine fois, l'accumulateur sera de trois.
Et pendant que nous traverserons, il y en aura aussi trois, comme vous pouvez le voir ici.
Et trois plus trois font six.
Nous venons d'accumuler toutes ces valeurs et d'en renvoyer une seule.
Numéro six, nous avons réduit notre liste en une sorte de données que nous avons manipulées en utilisant dans notre cas,
l'accumulateur.
Mais j'aurais pu faire tout ce que je voulais ici.
Donc, si, par exemple, je change ce paramètre pour qu'il ne soit pas égal à 10, que pensez-vous qu'il se passera si je clique sur Exécuter ?
J'obtiens 16 parce que j'ai commencé mon accumulateur initial avec 10, donc c'était 10 plus un alors, et ainsi de suite.
Réduit maintenant vraiment, vraiment puissant parce que vous pouvez faire beaucoup de choses avec.
C'est vraiment très flexible.
Et en fait, sous le capot, des fonctions telles que Map Filter utilisent en fait cette réduction sous le capot afin que vous puissiez
réellement créer votre propre carte et fonction de filtre à l'aide de reduce.
Encore une fois, réduire est un peu difficile à comprendre au début, et il faut un peu de pratique pour
vraiment l'utiliser.
Mais c'est l'une de ces choses que les programmeurs avancés aiment vraiment, vraiment et que vous verrez de plus en plus tout au long
de votre carrière au fur et à mesure que vous vous améliorerez.
Je te verrai dans le prochain.
Bye Bye.