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

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, kursun bir parçasıdır

Verimli Python Kodu Yazmak

Kursa Göz Atın

Egzersiz 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.
    • names listesini, total_stats_np dizisini ve avg_stats_np dizisini birleştirerek nihai çıktı listesi (poke_list_np) oluştur.

Uygulamalı etkileşimli egzersiz

Bu egzersizi bu örnek kodu tamamlayarak deneyin.

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