LoslegenKostenlos loslegen

Pokémon Summen und Durchschnitte ohne Schleife

Eine Liste mit 720 Pokémon wurde in deine Sitzung geladen: names. Die entsprechenden Pokémon-Statistiken wurden in ein NumPy-Array namens stats geladen. Jede Zeile von stats entspricht einem Pokémon auf names und jede Spalte steht für einen einzelnen Pokémon-Status (HP, Attack, Defense, Special Attack, Special Defense und Speed ).

Du willst den Gesamtstattwert jedes Pokémon (d.h. die Summe jeder Zeile in stats) und den Durchschnittsstattwert jedes Pokémon (d.h. den Mittelwert jeder Zeile in stats) ermitteln, um das stärkste Pokémon zu finden.

Die folgende for-Schleife wurde geschrieben, um diese Werte zu sammeln:

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))

Diese Übung ist Teil des Kurses

Effizienten Python-Code schreiben

Kurs anzeigen

Anleitung zur Übung

  • Ersetze die obige for-Schleife durch NumPy:

    • Erstelle ein Gesamtstatistik-Array (total_stats_np) mit der Methode .sum() und gib die richtige Achse an.

    • Erstelle ein durchschnittliches Statistik-Array (avg_stats_np) mit der Methode .mean() und gib die richtige Achse an.

    • Erstelle eine endgültige Ausgabeliste (poke_list_np), indem du die Liste names, das Array total_stats_np und das Array avg_stats_np kombinierst.

Interaktive Übung

Versuche dich an dieser Übung, indem du diesen Beispielcode vervollständigst.

# 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))
Code bearbeiten und ausführen