Laten we het hebben over de laatste vermindering, en dit is een beetje geavanceerd en in het begin misschien een beetje moeilijk te begrijpen, maar
het is goed om te weten dat het bestaat en je kunt er meer over leren door het te oefenen
en wat documentatie te lezen op je eigen.
Nu, verminderen komt niet als onderdeel van de ingebouwde functie van python.
Om ervoor te zorgen dat we reduce gebruiken, moeten we zoiets doen.
Je hebt dit nog nooit eerder gezien en dit is iets waar we op in gaan in het modulegedeelte van
de cursus.
Maar wat hier in wezen gebeurt, is wanneer we Python Interpreter en het Python-pakket hebben gedownload, in ons
geval doet deze Reppel het al voor ons.
We kunnen iets van deze foto's importeren.
En func-tools zijn wat we een gereedschapsriem noemen die we kunnen gebruiken voor functionele tools die bij de Python-installatie
worden geleverd.
En van daaruit is er een specifieke functie die we kunnen importeren.
Dus ik zeg, hey, van func-tools van deze toolbelt, ik wil dat je de reduce-functie importeert, zodat we deze opnieuw
in onze code kunnen gebruiken, iets dat we later in de cursus zullen behandelen.
Dus voor nu, kopieer en plak deze regel gewoon.
Laten we vervolgens een deel van onze lijst verwijderen en hier verminderen gebruiken.
Nu, met verminderen, hebben we een paar dingen nodig.
Eerst.
We hebben de functie nodig.
En dan hebben we de reeks of de gegevens nodig.
Dus wat de functie zal zijn, allereerst, onze gegevens zullen onze mijn lijst zijn, dus ik ga
mijn lijst zeggen en de verminderde functie stelt ons in staat iets interessants te doen.
Ik kan het, laten we zeggen, een functie geven.
En deze functie noemen we de accumulator.
En de accumulator neemt twee parameters, en onthoud, dit wordt door reduce aangeroepen, dus reduce zal verantwoordelijk zijn
voor het geven van deze twee parameters uit de gegevens die we het geven, wat
mijn lijst is.
De eerste parameter wordt wat we de accumulatie noemen, of in mijn geval de Axi.
En dan is hier het item.
Nu, waar het echt interessant wordt, is dat wanneer we voor het eerst mijn lijst van de reductie passeren, we het eerste
item krijgen.
Het eerste item bevindt zich in deze parameter.
Maar wat is deze as in eerste instantie?
Als ik de haakjes hier maar weghaal.
En zo verklein je je ziet dat we de functie hebben.
De volgorde, die in ons geval onze lijst zal zijn en dan de initiaal en initiaal, is wat de accumulator zal
zijn.
Dus nogmaals, laten we zeggen dat we de accumulatorfunctie gaan hebben die we nog niet gaan
aanroepen.
Dat gaat Reduce voor ons doen.
Ik ga het de lijst geven.
Of de gegevens die we willen herhalen en dan geef ik het een beginwaarde van nul.
We hebben er dus drie.
Parameters hier of drie argumenten die we eraan geven.
Laat me de haakjes sluiten waar je dit hier een beetje groter maakt en ervoor zorgen dat ik kan spellen.
Nu, hier, zal het eerste item het eerste item in mijn lijst zijn.
En dan gaat de accumulator standaard naar nul als we hem niets geven of in ons geval hebben we
gezegd dat de accumulator nul wordt.
Dus het eerste dat we gaan doen, is dat we de accu plus het item teruggeven.
Oké, laten we dit één voor één doornemen.
Ik ga hier de accumulator en het item afdrukken zodat we het kunnen zien en dan ga ik deze
code uitvoeren.
Regel 15 in object is niet itereerbaar.
En dit is een beetje lastig, maar we hebben de lijst eigenlijk niet meer nodig omdat reduce iets interessants voor
ons gaat doen.
Dus laten we dit voor nu verwijderen en gewoon teruggeven wat verminderd ons geeft.
En de afdruk als ik klik, ren.
Moet je zien.
Oké, wat is er net gebeurd?
Laten we eens kijken.
Verminderen.
Stelt ons in staat om iets te verminderen, een soort waarde van de iterabele die we eraan geven.
Laten we dus stap voor stap gaan.
We hebben mijn lijst en mijn lijst zal worden toegepast op de accumulator door middel van verminderd.
De accumulator gaat mijn lijst innemen.
En het eerste wat het gaat doen in de eerste doorgang is, hé, wat wordt mijn
accumulator?
Ik ga het op nul zetten.
Dus de eerste pass-through-accu wordt nul.
Een item wordt er een, en dat is wat we hier zien.
En we gaan het nul plus één optellen.
Dus nu hebben we er een teruggestuurd.
Nu, de tweede doorgang naar.
Wat gaat er gebeuren als de tweede keer door de accumulator gaat, wat zal deze terugkeer zijn?
Dus de volgende keer dat dit wordt geretourneerd, wordt in de accumulator ingevuld, dus in ons geval
is nul plus één één.
Een item is twee, één plus twee wordt drie, dus één plus twee is drie.
Dus de volgende keer is de accumulator drie.
En terwijl we er doorheen gaan, zullen er ook drie zijn, zoals je hier kunt zien.
En drie plus drie is zes.
We hebben zojuist al deze waarden verzameld en één enkele geretourneerd.
Nummer zes, we hebben onze lijst teruggebracht tot een soort gegevens die we hebben gemanipuleerd met in ons geval de
accumulator.
Maar ik had hier alles kunnen doen wat ik wilde.
Dus als ik dit bijvoorbeeld verander in niet gelijk aan 10, wat denk je dat er zal gebeuren als ik op uitvoeren klik?
Ik krijg 16 omdat ik mijn eerste accu met 10 begon, dus het was toen 10 plus één, enzovoort, enzovoort.
Nu vermindert echt, echt krachtig omdat je er een heleboel dingen mee kunt doen.
Het is echt heel flexibel.
En eigenlijk onder de motorkap gebruiken functies zoals Map Filter deze reductie onder de motorkap, zodat je je
eigen kaart en filterfunctie kunt bouwen met behulp van reduce.
Nogmaals, verminderen is in het begin een beetje moeilijk te begrijpen, en het vergt wat oefening om het echt te
gebruiken.
Maar het is een van die dingen waar gevorderde programmeurs echt van houden en waar je tijdens je carrière steeds
meer van zult zien naarmate je beter en beter wordt.
Ik zie je in de volgende.
Tot ziens.