CommencerCommencer gratuitement

Boucle de calcul unique

Une liste d'entiers représentant la génération de chaque Pokémon a été chargée dans votre session appelée generations. Vous aimeriez rassembler les comptes de chaque génération et déterminer le pourcentage que représente chaque génération par rapport au nombre total d'entiers.

La boucle ci-dessous a été écrite pour accomplir cette tâche :

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)

    )

Rendons cette boucle plus efficace en déplaçant un calcul unique en dehors de la boucle.

Cet exercice fait partie du cours

Écrire du code Python efficace

Afficher le cours

Instructions

  • Importez Counter à partir du module collections.
  • Utilisez Counter() pour collecter le nombre de chaque génération de la liste generations. Enregistrez ceci sous gen_counts.
  • Écrivez une meilleure boucle for qui place un calcul unique à l'extérieur (au-dessus) de la boucle. Utilisez exactement la même syntaxe que la boucle for originale (copiez et collez simplement le calcul unique au-dessus de la boucle).

Exercice interactif pratique

Essayez cet exercice en complétant cet exemple de code.

# 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))
Modifier et exécuter le code