LoslegenKostenlos loslegen

Pokémon sammeln ohne Schleife

Eine Liste mit 720 Pokémon wurde als „ poke_names ” in deine Sitzung geladen. Eine andere Liste mit den jeweiligen Generationen der einzelnen Pokémon wurde unter poke_gens hochgeladen.

Es wurde eine for-Schleife erstellt, um die Pokémon der ersten und zweiten Generation zu filtern und 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

  • Mach die obige for-Schleife mit Hilfe von Listenkomprimierung und der Funktion „ map() ” weg:

    • Benutz Listenkomprimierung, um alle Pokémon zu sammeln, die zur Generation 1 oder Generation 2 gehören. Speichere dies als gen1_gen2_pokemon.

    • Benutz die Funktion „ map() “, um die Anzahl der Buchstaben im Namen jedes Pokémon aus der Liste „ gen1_gen2_pokemon “ zu sammeln. Speicher dieses Kartenobjekt als „ name_lengths_map “.

    • Mach aus „ gen1_gen2_pokemon “ und „ name_lengths_map “ eine Liste namens „ gen1_gen2_name_lengths “.

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# 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])
Code bearbeiten und ausführen