ÎncepețiÎncepe gratuit

Construiește un generator

În exercițiile anterioare, ai lucrat în principal cu expresii generator, care folosesc sintaxa de comprehensiune. Posibilitatea de a folosi această sintaxă pentru expresii generator ți-a simplificat enorm munca!

Acum, reamintește-ți din video că, pe lângă expresiile generator, există și funcții generator. Funcțiile generator sunt funcții care, la fel ca expresiile generator, produc o serie de valori cu yield, în loc să returneze o singură valoare. O funcție generator se definește ca o funcție obișnuită, cu diferența că, ori de câte ori generează o valoare, folosește cuvântul cheie yield în loc de return.

În acest exercițiu, vei crea o funcție generator cu un mecanism similar cu cel al expresiei generator definite în exercițiul anterior:

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

Acest exercițiu face parte din cursul

Cutia cu instrumente Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Completează antetul funcției get_lengths(), care are un singur parametru, input_list.
  • În bucla for din definiția funcției, folosește yield pentru a produce lungimea șirurilor de caractere din input_list.
  • Completează partea iterabilă a buclei for care afișează valorile generate de funcția generator get_lengths(). Transmite lista lannister ca argument al apelului get_lengths().

Exercițiu interactiv practic

Încearcă acest exercițiu completând acest cod de exemplu.

# 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)
Editează și rulează codul