LoslegenKostenlos loslegen

Einmalige Berechnungen in Schleifen

Eine Liste von ganzen Zahlen, welche die Generation jedes Pokémon repräsentieren, wurde in deine Session mit dem Namen generations geladen. Du möchtest die Anzahl jeder Generation sammeln und herausfinden, wie viel Prozent jede Generation von der Gesamtanzahl ausmacht.

Die folgende Schleife wurde geschrieben, um diese Aufgabe zu erledigen:

for gen,count in gen_counts.items():

    total_count = len(generations)

    gen_percent = round(count / total_count * 100, 2)

    print(

      'generation {}: count = {:3} percentage = {}'

      .format(gen, count, gen_percent)

    )

Lass uns diese Schleife effizienter machen, indem wir eine einmalige Berechnung außerhalb der Schleife durchführen.

Diese Übung ist Teil des Kurses

Effizienten Python-Code schreiben

Kurs anzeigen

Anleitung zur Übung

  • Importiere Counter aus dem Modul collections.
  • Benutze Counter(), um die Anzahl jeder Generation aus der Liste generations zu ermitteln. Speichere die Werte als gen_counts.
  • Schreibe eine bessere for-Schleife, die eine einmalige Berechnung außerhalb (über) der Schleife macht. Benutze genau die gleiche Syntax wie bei der ursprünglichen for-Schleife (kopiere einfach die einmalige Berechnung und füge sie über der Schleife ein).

Interaktive Übung

Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.

# Import Counter
____

# Collect the count of each generation
gen_counts = ____

# Improve for loop by moving one calculation above the loop
total_count = ____

for gen,count in gen_counts.items():
    gen_percent = round(count / total_count * 100, 2)
    print('generation {}: count = {:3} percentage = {}'
          .format(gen, count, gen_percent))
Code bearbeiten und ausführen