Erste SchritteKostenlos loslegen

Pokémon sammeln ohne Schleife

Eine Liste mit 720 Pokémon wurde als poke_names in deine Sitzung geladen. Eine weitere Liste mit den entsprechenden Pokémon-Generationen wurde unter poke_gens geladen.

Es wurde eine for-Schleife erstellt, um die Pokémon zu filtern, die zur ersten oder zweiten Generation gehören, und um die Anzahl der Buchstaben im Namen jedes Pokémon zu sammeln:

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)

Diese Übung ist Teil des Kurses

Effizienten Python-Code schreiben

Kurs anzeigen

Anleitung zur Übung

  • Eliminiere die obige for-Schleife mithilfe des Listenverständnisses und der Funktion map():

    • Verwende das Listenverständnis, um alle Pokémon zu sammeln, die zu Generation 1 oder Generation 2 gehören. Speichere dies als gen1_gen2_pokemon.

    • Verwende die Funktion map(), um die Anzahl der Buchstaben im Namen jedes Pokémon in der Liste gen1_gen2_pokemon zu sammeln. Speichere dieses Kartenobjekt als name_lengths_map.

    • Kombiniere gen1_gen2_pokemon und name_lengths_map zu einer Liste namens gen1_gen2_name_lengths.

Interaktive Übung zum Anfassen

Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.

# 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])
Bearbeiten und Ausführen von Code