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

Verimli Python Kodu Yazmak

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

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