ComenzarEmpieza gratis

Bucle de cálculo único

Se ha cargado en tu sesión una lista de números enteros que representa la generación de cada Pokémon, llamada generations. Te gustaría reunir los recuentos de cada generación y determinar qué porcentaje representa cada generación sobre el recuento total de enteros.

El siguiente bucle se escribió para realizar esta tarea:

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)

    )

Hagamos este bucle más eficiente moviendo un cálculo único fuera del bucle.

Este ejercicio forma parte del curso

Escribir código Python eficiente

Ver curso

Instrucciones de ejercicio

  • Importa Counter del módulo collections.
  • Utiliza Counter() para recoger el recuento de cada generación de la lista generations. Guárdala como gen_counts.
  • Escribe un bucle for mejor que coloque un cálculo único fuera (encima) del bucle. Utiliza exactamente la misma sintaxis que en el bucle for original (simplemente copia y pega el cálculo único encima del bucle).

Ejercicio interactivo práctico

Pruebe este ejercicio completando este código de muestra.

# 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))
Editar y ejecutar código