Kom igångKom igång gratis

Engångsberäkning i slinga

En lista med heltal som representerar varje Pokémons generation har laddats in i din session och kallas generations. Du vill räkna förekomsterna av varje generation och beräkna hur stor procentandel varje generation utgör av det totala antalet heltal.

Nedan visas en slinga som skrivits för att lösa denna uppgift:

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

Låt oss göra slingan mer effektiv genom att flytta en engångsberäkning utanför den.

Den här övningen är en del av kursen

Att skriva effektiv Python-kod

Visa kurs

Övningsinstruktioner

  • Importera Counter från modulen collections.
  • Använd Counter() för att räkna förekomsterna av varje generation från listan generations. Spara resultatet som gen_counts.
  • Skriv en förbättrad for-slinga där du placerar en engångs-beräkning utanför (ovanför) slingan. Använd exakt samma syntax som i den ursprungliga for-slingan (kopiera och klistra helt enkelt in engångsberäkningen ovanför slingan).

Interaktiv övning med praktiskt arbete

Testa den här övningen genom att slutföra den här exempelkoden.

# 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))
Redigera och kör kod