funktionale Programmierung Material Motivation Grundlagen Rekursion Listen Funktionen höherer Ordnung list comprehension Generator lazy evaluation Haskell Endrekursion Beispiele
Pfad: Startseite / Fächer / Informatik / funktionale Programmierung / Generator
Autor: mk
10.05.2010 17:27:28
608
Generator

Sehr verwandt zu list comprehensions sind Generatoren. Syntaktisch unterscheiden sie sich von list comprehensions nur durch runde statt eckige Klammern.

Generator

Python-Generatoren kann man sich als 'virtuelle' Listen vorstellen, die auf Aufforderung (z.B. next) die Elemente real herausgeben können. Das aber nur einmal. Generatoren belegen unter Umständen dramatisch weniger Speicher als Listen. Generatoren beschreiben Listen, ohne sie wirklich aufzubauen, und sie merken sich, wo man in der 'Liste' steht.

Weitere Möglichkeiten

def genP():
    yield 'P'
    yield 'y'
    yield 't'
    yield 'h'
    yield 'o'
    yield 'n'

def genN():
    i = 1
    while True:
        yield i
        i = i + 1

def genFib():
    a, b = 0, 1
    while True:
        yield b
        a, b = b, a+b
Shell-Tests

Generator 2

Links