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
Como escrever um código Python eficiente
Instruções de exercício
- Importe
Counter
do módulocollections
. - Use
Counter()
para coletar a contagem de cada geração da listagenerations
. Salve o resultado comogen_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 preenchendo 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))