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ırEgzersiz 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_pokemonolarak kaydet. map()fonksiyonunu kullanarakgen1_gen2_pokemonlistesi içindeki her Pokémon'un adındaki harf sayısını topla. Bu map nesnesininame_lengths_mapolarak kaydet.gen1_gen2_pokemonvename_lengths_mapöğelerinigen1_gen2_name_lengthsadlı bir listede birleştir.
- Jenerasyon 1 veya jenerasyon 2'ye ait her Pokémon'u toplamak için liste üreteci kullan. Bunu
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])