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
Instructions
- Importez
Counter
à partir du modulecollections
. - Utilisez
Counter()
pour collecter le nombre de chaque génération de la listegenerations
. Enregistrez ceci sousgen_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))