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, intitulée generations. Vous souhaitez rassembler les nombres de chaque génération et déterminer le pourcentage que chaque génération représente par rapport au nombre total d'entiers.
La boucle ci-dessous a été conçue 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)
)
Optimisons cette boucle en déplaçant un calcul ponctuel 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 à partir de la listegenerations. Enregistrez-la sousgen_counts. - Écrivez une boucle for améliorée qui place un calcul unique à l'extérieur (au-dessus) de la boucle. Veuillez utiliser la même syntaxe que celle de la boucle for d'origine (il suffit de copier-coller 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))