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

Pokémoni bez cyklu

Do tvé relace byl načten seznam poke_names obsahující 720 Pokémonů. Druhý seznam poke_gens obsahuje generaci příslušející každému Pokémonovi.

Níže je připravený cyklus for, který filtruje Pokémony z první nebo druhé generace a zjišťuje počet písmen v jejich jménu:

gen1_gen2_name_lengths_loop = []

for name,gen in zip(poke_names, poke_gens):
    if gen < 3:
        name_length = len(name)
        poke_tuple = (name, name_length)
        gen1_gen2_name_lengths_loop.append(poke_tuple)

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

Psaní efektivního kódu v Pythonu

Zobrazit kurz

Pokyny k cvičení

  • Nahraď výše uvedený cyklus for pomocí list comprehension a funkce map():

    • Pomocí list comprehension získej všechny Pokémony patřící do 1. nebo 2. generace. Výsledek ulož jako gen1_gen2_pokemon.
    • Pomocí funkce map() zjisti počet písmen v názvu každého Pokémona ze seznamu gen1_gen2_pokemon. Výsledný map object ulož jako name_lengths_map.
    • Zkombinuj gen1_gen2_pokemon a name_lengths_map do seznamu s názvem gen1_gen2_name_lengths.

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

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

# Collect Pokémon that belong to generation 1 or generation 2
gen1_gen2_pokemon = [name for name,gen in ____(____, ____) if gen < ____]

# Create a map object that stores the name lengths
name_lengths_map = ____(len, ____)

# Combine gen1_gen2_pokemon and name_lengths_map into a list
gen1_gen2_name_lengths = [*____(____, ____)]

print(gen1_gen2_name_lengths_loop[:5])
print(gen1_gen2_name_lengths[:5])
Upravit a spustit kód