Inhaltsverzeichnis

Generator Expressions

a = [1,2,3,4,5,6,7]

b = next (i for i in a if i == 4) 

In obigem Beispiel wird ein generator erstellt (der Ausdruck in den Klammern) der die Werte in a durchläuft und etwas zurückgibt wenn der aktuell durchlaufene Wert 4 ist.
Der Aufruf von next ruft die interne Methode next einmal auf → man könnte es auch so schreiben:

(i for i in a if i == 4).__next__()

Das Ergebnis des obigen Aufrufs ist 4.
Der Generator wird einmal aufgerufen (per next) und arbeitet dann einmal die Anweisungen in Klammern durch bis ein Ergebnis gefunden wird → die Anweisung ist durchlaufe alle Werte von a und gebe etwas zurück wenn der aktuelle Wert der Schleife 4 ist.

Der Vorteil hier ist, die Schleife wird nur bis zum erreichen von 4 ausgeführt, danach beendet und die Anweisung ist wesentlich übersichtlicher als eine for-Schleife mit break-Statement.

Alle Ergebnisse eines Generators

a=*(records.name for i in records)
Oben stehendes würde ein Expansion auf den Generator machen und alle Ergebnisse des Generators in a speichern.

Hilfs-Ausdrücke