1. Обучение
  2. /
  3. Курса
  4. /
  5. Эффективный код на Python

Connected

упражнение

Цикл с однократным вычислением

В вашу сессию загружен список целых чисел generations, где каждое число обозначает поколение покемона. Вам нужно подсчитать количество покемонов каждого поколения и определить, какую долю (в процентах) каждое поколение составляет от общего числа.

Для этого был написан следующий цикл:

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)
    )

Сделаем этот цикл эффективнее — вынесем однократное вычисление за его пределы.

Инструкции

100 XP
  • Импортируйте Counter из модуля collections.
  • С помощью Counter() подсчитайте количество покемонов каждого поколения из списка generations. Сохраните результат в переменную gen_counts.
  • Перепишите цикл for так, чтобы однократное вычисление было вынесено за его пределы (выше цикла). Используйте точно такой же синтаксис, что и в исходном цикле (просто скопируйте однократное вычисление и вставьте его перед циклом).