ComeçarComece de graça

Loop de cálculo único

Uma lista de números inteiros que representa a geração de cada Pokémon foi carregada em sua sessão chamada generations. Você gostaria de reunir as contagens de cada geração e determinar a porcentagem que cada geração representa em relação à contagem total de números inteiros.

O loop abaixo foi escrito para realizar essa tarefa:

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)

    )

Vamos tornar esse loop mais eficiente movendo um cálculo único para fora do loop.

Este exercício faz parte do curso

Escrevendo código Python eficiente

Ver curso

Instruções do exercício

  • Importe Counter do módulo collections.
  • Use Counter() para coletar a contagem de cada geração da lista generations. Salve o resultado como gen_counts.
  • Escreva um loop for melhor que coloque um cálculo único fora (acima) do loop. Use exatamente a mesma sintaxe do loop for original (basta copiar e colar o cálculo único acima do loop).

Exercício interativo prático

Experimente este exercício completando este código de exemplo.

# 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 e executar o código