Versteht diese Python-For-Schleife nicht

8

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:)

    
Mike 18.09.2011, 18:58
quelle

4 Antworten

11

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%     
Erik Forsberg 18.09.2011, 19:04
quelle
3

Tupel-Entpacken.

%Vor%

Und die Funktion ist nur eine Funktion.

    
Ignacio Vazquez-Abrams 18.09.2011 19:02
quelle
3

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.

    
plasticsaber 18.09.2011 19:04
quelle
2

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

%Vor%

In dieser for -Schleife werden also die beiden Tupelwerte aus dem aktuellen Iterationselement direkt in Ihre beiden Variablen position und target eingefügt.

    
Johannes Charra 18.09.2011 19:05
quelle

Tags und Links