ComenzarEmpieza gratis

Reunir Pokémon sin bucle

Se ha cargado en tu sesión una lista que contiene 720 Pokémon como poke_names. Se ha cargado otra lista que contiene la generación correspondiente a cada Pokémon como poke_gens.

Se ha creado un bucle for para filtrar los Pokémon que pertenecen a la generación uno o dos, y recoger el número de letras del nombre de cada Pokémon:

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)

Este ejercicio forma parte del curso

Escribir código Python eficiente

Ver curso

Instrucciones de ejercicio

  • Elimina el bucle for anterior utilizando la comprensión de listas y la función map():

    • Utiliza la comprensión de listas para reunir cada Pokémon que pertenezca a la generación 1 o a la generación 2. Guárdala como gen1_gen2_pokemon.

    • Utiliza la función map() para recoger el número de letras del nombre de cada Pokémon en la lista gen1_gen2_pokemon. Guarda este objeto mapa como name_lengths_map.

    • Combina gen1_gen2_pokemon y name_lengths_map en una lista llamada gen1_gen2_name_lengths.

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

# 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])
Editar y ejecutar código