Začněte nyníZačněte zdarma

Vytvoř generátor

V předchozích cvičeních jsi pracoval/a především s generátorovými výrazy, které využívají syntaxi comprehension. Díky ní byla práce s generátory výrazně jednodušší!

Nyní si připomeň z videa, že kromě generátorových výrazů existují také generátorové funkce. Generátorové funkce jsou funkce, které – stejně jako generátorové výrazy – postupně vrací sérii hodnot místo jediné hodnoty. Generátorová funkce se definuje stejně jako běžná funkce, ale kdykoli produkuje hodnotu, používá klíčové slovo yield místo return.

V tomto cvičení vytvoříš generátorovou funkci s podobným chováním, jaké měl generátorový výraz z předchozího cvičení:

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

Toto cvičení je součástí kurzu

Python Toolbox

Zobrazit kurz

Pokyny k cvičení

  • Doplň hlavičku funkce get_lengths(), která přijímá jediný parametr input_list.
  • Ve smyčce for uvnitř těla funkce použij yield pro vrácení délky jednotlivých řetězců z input_list.
  • Doplň iterovatelnou část smyčky for, která vypisuje hodnoty generované funkcí get_lengths(). Předej jí seznam lannister.

Interaktivní cvičení na vyzkoušení si v praxi

Vyzkoušejte si toto cvičení dokončením tohoto ukázkového kódu.

# 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)
Upravit a spustit kód