ÎncepețiÎncepe gratuit

Colectarea Pokémon-urilor fără o buclă

O listă cu 720 de Pokémon a fost încărcată în sesiunea ta ca poke_names. O altă listă cu generația corespunzătoare fiecărui Pokémon a fost încărcată ca poke_gens.

A fost creată o buclă for pentru a filtra Pokémon-urile din generația unu sau doi și pentru a colecta numărul de litere din numele fiecăruia:

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)

Acest exercițiu face parte din cursul

Scriere eficientă a codului Python

Vezi cursul

Instrucțiuni pentru exercițiu

  • Elimină bucla for de mai sus folosind list comprehension și funcția map():

    • Folosește list comprehension pentru a colecta fiecare Pokémon din generația 1 sau generația 2. Salvează rezultatul ca gen1_gen2_pokemon.
    • Folosește funcția map() pentru a calcula numărul de litere din numele fiecărui Pokémon din lista gen1_gen2_pokemon. Salvează acest obiect map ca name_lengths_map.
    • Combină gen1_gen2_pokemon și name_lengths_map într-o listă numită gen1_gen2_name_lengths.

Exercițiu interactiv practic

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

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