Erste SchritteKostenlos loslegen

Einen Generator erstellen

In den bisherigen Aufgaben hast du dich vor allem mit dem Schreiben von Generatorausdrücken beschäftigt, die die Comprehension-Syntax verwenden. Die Möglichkeit, die Comprehension-Syntax für Generatorausdrücke zu verwenden, hat deine Arbeit so viel einfacher gemacht!

Erinnere dich daran, dass es nicht nur Generatorausdrücke gibt, sondern auch Generatorfunktionen. Generatorfunktionen sind Funktionen, die wie Generatorausdrücke eine Reihe von Werten liefern, anstatt einen einzelnen Wert zurückzugeben. Eine Generatorfunktion wird wie eine reguläre Funktion definiert, aber immer dann, wenn sie einen Wert erzeugt, verwendet sie das Schlüsselwort yield anstelle von return.

In dieser Aufgabe erstellst du eine Generatorfunktion mit einem ähnlichen Mechanismus wie der Generatorausdruck, den du in der vorherigen Aufgabe definiert hast:

lengths = (len(person) for person in lannister)

Diese Übung ist Teil des Kurses

Python Toolbox

Kurs anzeigen

Anleitung zur Übung

  • Vervollständige den Funktionskopf für die Funktion get_lengths(), die einen einzigen Parameter hat, input_list.
  • Gib in der for-Schleife in der Funktionsdefinition per yield die Länge der Strings in input_list aus.
  • Vervollständige den Iterable-Teil der for-Schleife, um die von der Generatorfunktion get_lengths() erzeugten Werte auszugeben. Gib den Aufruf an get_lengths() weiter, indem du die Liste lannister übergibst.

Interaktive Übung zum Anfassen

Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.

# Create a list of strings
lannister = ['cersei', 'jaime', 'tywin', 'tyrion', 'joffrey']

# Define generator function get_lengths
def ____:
    """Generator function that yields the
    length of the strings in input_list."""

    # Yield the length of a string
    for person in input_list:
        ____

# Print the values generated by get_lengths()
for value in ____:
    print(value)
Bearbeiten und Ausführen von Code