1. Apprendre
  2. /
  3. Cours
  4. /
  5. Rédiger du code Python efficace

Connected

Exercice

Boucle avec calcul effectué une seule fois

Une liste d'entiers représentant la génération de chaque Pokémon a été chargée dans votre session sous le nom generations. Vous voulez obtenir le nombre d'occurrences de chaque génération et calculer le pourcentage que chaque génération représente 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 effectué une seule fois à l'extérieur de la boucle.

Instructions

100 XP
  • Importez Counter du module collections.
  • Utilisez Counter() pour compter chaque génération dans la liste generations. Enregistrez le résultat dans gen_counts.
  • Écrivez une meilleure boucle for qui place un calcul effectué une seule fois à l'extérieur (au-dessus) de la boucle. Utilisez exactement la même syntaxe que la boucle for originale (copiez-collez simplement le calcul effectué une seule fois au-dessus de la boucle).