BaşlayınÜcretsiz Başlayın

Döngü kullanmadan Pokémon toplama

720 Pokémon içeren bir liste oturumuna poke_names olarak yüklendi. Her Pokémon'un karşılık gelen jenerasyonunu içeren başka bir liste ise poke_gens olarak yüklendi.

Bir for döngüsü, birinci veya ikinci jenerasyona ait Pokémon'ları filtrelemek ve her Pokémon'un adındaki harf sayısını toplamak için oluşturuldu:

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)

Bu egzersiz

Verimli Python Kodu Yazmak

kursunun bir parçasıdır
Kursu Görüntüle

Egzersiz talimatları

  • Yukarıdaki for döngüsünü liste üreteci ve map() fonksiyonunu kullanarak ortadan kaldır:

    • Jenerasyon 1 veya jenerasyon 2'ye ait her Pokémon'u toplamak için liste üreteci kullan. Bunu gen1_gen2_pokemon olarak kaydet.
    • map() fonksiyonunu kullanarak gen1_gen2_pokemon listesi içindeki her Pokémon'un adındaki harf sayısını topla. Bu map nesnesini name_lengths_map olarak kaydet.
    • gen1_gen2_pokemon ve name_lengths_map öğelerini gen1_gen2_name_lengths adlı bir listede birleştir.

Uygulamalı interaktif egzersiz

Bu örnek kodu tamamlayarak bu egzersizi bitirin.

# 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])
Kodu Düzenle ve Çalıştır