Ich bin immer noch ein Python-Newb, aber ich arbeite an dem Pyneurgen-Lernprogramm für Neuralnetzwerke , und ich antworte nicht verstehe nicht, wie die for-Schleife, die zum Erstellen der Eingabedaten verwendet wird, in diesem Fall funktioniert:
%Vor%Was genau durchläuft die Schleife? Ich habe die Verwendung des Kommas und einer Funktion in der Schleife zuvor nicht bemerkt.
Vielen Dank im Voraus für jede Hilfe:)
Die Funktion population_gen gibt eine Liste von Tupeln zurück, die mit dieser Syntax automatisch in Variablennamen entpackt werden.
Sie erhalten im Grunde also etwas wie den folgenden Rückgabewert von der Funktion:
%Vor%In diesem Beispiel haben die Variablen "position" und "target" in der ersten Iteration der for-Schleife folgende Werte:
%Vor%In der zweiten Iteration:
%Vor%Tupel-Entpacken.
%Vor%Und die Funktion ist nur eine Funktion.
Die Funktion gibt entweder eine Sequenz zurück oder dient als so genannter "Generator": Sie spuckt aufeinanderfolgende Elemente in einer Sequenz aus, damit der Aufrufer sie durchlaufen kann. Diese Frage zum Keyword "yield" enthält eine ausführliche Diskussion darüber, wie diese funktionieren.
>Wie beim Komma, da die Funktion (scheinbar) ein Zwei-Tupel zurückgibt, ist die durch Kommas getrennte Namensliste eine bequeme Möglichkeit, einzelne Elemente des Tupels zu benennen, ohne sie selbst entpacken zu müssen.
Es heißt Tupel-Entpacken . Die Funktion population_gen
(Generator) liefert Tupel, die genau zwei Elemente enthalten. In Python können Sie Tupeln wie diesem mehrere Variablen zuweisen
In dieser for
-Schleife werden also die beiden Tupelwerte aus dem aktuellen Iterationselement direkt in Ihre beiden Variablen position
und target
eingefügt.
Tags und Links python