Erste SchritteKostenlos loslegen

Einmalige Berechnungsschleife

Eine Liste mit ganzen Zahlen, die die Generation eines jeden Pokémon repräsentiert, wurde in deine Sitzung geladen: generations. Du möchtest die Zählungen jeder Generation sammeln und bestimmen, welchen Anteil jede Generation an der Gesamtzahl der ganzen Zahlen hat.

Die folgende Schleife wurde geschrieben, um diese Aufgabe zu erfüllen:

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)

    )

Wir können diese Schleife effizienter gestalten, 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.
  • Verwende Counter(), um die Anzahl der einzelnen Generationen in der Liste generations zu sammeln. Speichere dies als gen_counts.
  • Schreibe eine bessere for-Schleife, die eine einmalige Berechnung außerhalb (oberhalb) der Schleife durchführt. Verwende genau die gleiche Syntax wie die ursprüngliche for-Schleife (kopiere einfach die einmalige Berechnung oberhalb der Schleife und füge sie ein).

Interaktive Übung zum Anfassen

Probieren Sie diese Übung aus, indem Sie diesen Beispielcode ausführen.

# 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))
Bearbeiten und Ausführen von Code