Döngü olmadan Pokémon toplamları ve ortalamaları
Oturumuna names adlı, 720 Pokémon'dan oluşan bir liste yüklendi. Her bir Pokémon'a karşılık gelen istatistikler ise NumPy dizisi olarak stats adına yüklendi. stats dizisinin her satırı names içindeki bir Pokémon'a karşılık gelir ve her sütun bir Pokémon istatistiğini temsil eder (sırasıyla HP, Attack, Defense, Special Attack, Special Defense ve Speed).
Her Pokémon'un toplam istatistik değerini (yani stats içindeki her satırın toplamını) ve ortalama istatistik değerini (yani stats içindeki her satırın ortalamasını) toplayarak en güçlü Pokémon'u bulmak istiyorsun.
Aşağıdaki for döngüsü bu değerleri toplamak için yazıldı:
poke_list = []
for pokemon,row in zip(names, stats):
total_stats = np.sum(row)
avg_stats = np.mean(row)
poke_list.append((pokemon, total_stats, avg_stats))
Bu egzersiz
Verimli Python Kodu Yazmak
kursunun bir parçasıdırEgzersiz talimatları
- Yukarıdaki for döngüsünü NumPy kullanarak değiştir:
- Doğru ekseni belirterek
.sum()metoduyla bir toplam istatistikler dizisi (total_stats_np) oluştur. - Doğru ekseni belirterek
.mean()metoduyla bir ortalama istatistikler dizisi (avg_stats_np) oluştur. nameslistesini,total_stats_npdizisini veavg_stats_npdizisini birleştirerek nihai çıktı listesi (poke_list_np) oluştur.
- Doğru ekseni belirterek
Uygulamalı interaktif egzersiz
Bu örnek kodu tamamlayarak bu egzersizi bitirin.
# Create a total stats array
total_stats_np = ____.____(axis=____)
# Create an average stats array
avg_stats_np = ____
# Combine names, total_stats_np, and avg_stats_np into a list
poke_list_np = [*____(names, total_stats_np, avg_stats_np)]
print(poke_list_np == poke_list, '\n')
print(poke_list_np[:3])
print(poke_list[:3], '\n')
top_3 = sorted(poke_list_np, key=lambda x: x[1], reverse=True)[:3]
print('3 strongest Pokémon:\n{}'.format(top_3))