Lassen Sie uns über das letzte Reduzieren sprechen, und das ist ein bisschen fortgeschritten und es mag anfangs etwas schwer zu verstehen sein,
aber es ist gut zu wissen, dass es existiert und Sie können mehr darüber erfahren, indem Sie es
üben und einige Dokumentationen zu lesen dein eigenes.
Jetzt ist Reduce nicht Teil der eingebauten Python-Funktion.
Damit wir Reduce verwenden können, müssen wir so etwas tun.
Das haben Sie noch nie zuvor gesehen und darauf werden wir im Modulteil des Kurses
eingehen.
Aber im Wesentlichen passiert hier, als wir Python Interpreter und das Python-Paket heruntergeladen haben, in unserem Fall
erledigt dieser Reppel dies bereits für uns.
Wir können etwas von diesen Fotos importieren.
Und func tools nennen wir einen Werkzeuggürtel, den wir für funktionale Werkzeuge verwenden können, die mit der Python-Installation
geliefert werden.
Und von dort aus gibt es eine bestimmte Funktion, die wir importieren können.
Ich sage also, hey, von den func-Tools aus diesem Toolbelt möchte ich, dass Sie die Reduce-Funktion importieren, damit wir sie
wieder in unserem Code verwenden können, was wir später im Kurs behandeln werden.
Kopieren Sie diese Zeile vorerst einfach und fügen Sie sie ein.
Als nächstes entfernen wir einen Teil unserer Liste und verwenden hier Reduce.
Jetzt, mit Reduzieren, werden wir ein paar Dinge brauchen.
Zuerst.
Wir brauchen die Funktion.
Und dann brauchen wir die Sequenz oder die Daten.
Also, was wird die Funktion sein, zuallererst, unsere Daten werden unsere Liste sein, also sage ich
meine Liste und die reduzierte Funktion ermöglicht es uns, etwas Interessantes zu tun.
Ich kann ihm, sagen wir, eine Funktion geben.
Und diese Funktion nennen wir den Akkumulator.
Und der Akkumulator nimmt zwei Parameter, und denken Sie daran, dass dies von Reduce aufgerufen wird, also wird Reduce
dafür verantwortlich sein, diese beiden Parameter aus den Daten, die wir ihm geben, zu geben, was
meine Liste ist.
Der erste Parameter wird die Akkumulation oder in meinem Fall die Axi sein.
Und dann wird hier der Artikel sein.
Nun, wo es wirklich interessant wird, ist, dass wir, wenn wir meine Liste zum ersten Mal aus dem Reduzieren bestehen, das erste
Element erhalten.
Das erste Element befindet sich in diesem Parameter.
Aber was ist diese Achse zunächst?
Nun, wenn ich hier nur die Klammern entferne.
Und damit Sie reduzieren sehen Sie, dass wir die Funktion haben.
Die Sequenz, die in unserem Fall unsere Liste ist, und dann die Initiale und die Initiale, wird der Akkumulator
sein.
Nehmen wir also noch einmal an, dass wir die Akkumulatorfunktion haben werden, die wir noch nicht aufrufen
werden.
Reduce wird das für uns tun.
Ich gebe ihm die Liste.
Oder die Daten, über die wir iterieren möchten, und dann gebe ich ihnen einen Anfangswert von Null.
Wir haben also drei.
Parameter hier oder drei Argumente, die wir ihm geben.
Lassen Sie mich die Klammern schließen, in denen Sie das hier etwas größer machen, und stellen Sie sicher, dass ich buchstabieren kann.
Hier drin ist das erste Element das, was das erste Element in meiner Liste ist.
Und dann wird der Akkumulator standardmäßig auf Null gesetzt, wenn wir ihm nichts geben oder in unserem Fall haben wir
gesagt, dass der Akkumulator Null sein wird.
Das erste, was wir tun werden, ist, Akkumulator plus Artikel zurückzugeben.
OK, also gehen wir das nacheinander durch.
Ich werde hier tatsächlich den Akkumulator und das Element ausdrucken, nur damit wir es sehen können, und dann werde ich
diesen Code ausführen.
Zeile 15 in das Objekt ist nicht iterierbar.
Und das ist ein bisschen knifflig, aber wir brauchen die Liste eigentlich nicht mehr, weil Reduce etwas Interessantes für
uns tun wird.
Also lasst uns dies erst einmal entfernen und einfach alles zurückgeben, was uns reduziert gibt.
Und der Druck, wenn ich klicke, läuft.
Sieh dir das an.
In Ordnung, also was ist gerade passiert?
Werfen wir einen Blick.
Reduzieren.
Ermöglicht es uns, etwas zu reduzieren, eine Art Wert aus dem Iterierbaren, das wir ihm geben.
Gehen wir also Schritt für Schritt vor.
Wir haben meine Liste und meine Liste wird auf den Akkumulator durch reduziert angewendet.
Der Akku wird meine Liste übernehmen.
Und das erste, was es beim ersten Durchlauf tun wird, ist, zu sagen, hey, was wird mein Akkumulator
sein?
Ich werde es auf Null setzen.
Der erste Durchgang durch den Akkumulator wird also Null sein.
Ein Gegenstand wird einer sein, was wir hier sehen.
Und wir werden null plus eins hinzufügen.
So, jetzt haben wir einen zurückgegeben.
Nun zum zweiten Durchgang.
Was wird passieren, der zweite Durchgang durch den Akkumulator wird was sein, diese Rückkehr?
Der nächste Durchgang zu dem, was auch immer zurückgegeben wird, wird also in den Akkumulator gefüllt, sodass in unserem
Fall Null plus Eins Eins ist.
Ein Element ist zwei, eins plus zwei wird drei sein, also eins plus zwei gleich drei.
Das nächste Mal wird der Akku also drei sein.
Und während wir durchkommen, werden es auch drei sein, wie Sie hier sehen können.
Und drei plus drei ist sechs.
Wir haben gerade all diese Werte gesammelt und einen einzigen zurückgegeben.
Nummer sechs, wir haben unsere Liste auf eine Art von Daten reduziert, die wir in unserem Fall mit dem Akkumulator manipuliert
haben.
Aber ich hätte hier alles machen können, was ich wollte.
Wenn ich dies beispielsweise auf ungleich 10 ändere, was denkst du passiert, wenn ich auf Ausführen klicke?
Ich bekomme 16, weil ich meinen anfänglichen Akkumulator mit 10 begonnen habe, also waren es dann 10 plus eins, so weiter und so
fort.
Reduziert jetzt wirklich sehr stark, weil man damit vieles anstellen kann.
Es ist wirklich sehr flexibel.
Und tatsächlich unter der Haube verwenden Funktionen wie der Kartenfilter diese Reduzierung unter der Haube, sodass Sie mit
der Reduzierung Ihre eigene Karten- und Filterfunktion erstellen können.
Auch hier ist Reduce anfangs etwas schwer zu verstehen, und es braucht ein wenig Übung, um es wirklich zu
benutzen.
Aber es ist eines dieser Dinge, die fortgeschrittene Programmierer wirklich lieben und von denen Sie im Laufe Ihrer Karriere
immer mehr sehen werden, während Sie immer besser werden.
Wir sehen uns im nächsten.
Tschüss.