1. Nauka
  2. /
  3. Kursy
  4. /
  5. Wydajny kod w Pythonie

Connected

ćwiczenie

Obliczenie wykonywane jednorazowo

Do twojej sesji wczytano listę liczb całkowitych generations, która zawiera numer generacji każdego Pokémona. Chcesz zebrać liczebności każdej generacji i obliczyć, jaki procent całkowitej liczby elementów stanowi każda z nich.

Do tego zadania napisano poniższą pętlę:

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

Zoptymalizuj tę pętlę, przenosząc jednorazowe obliczenie poza jej ciało.

Instrukcje

100 XP
  • Zaimportuj Counter z modułu collections.
  • Użyj Counter(), aby zliczyć wystąpienia każdej generacji na liście generations. Zapisz wynik jako gen_counts.
  • Napisz ulepszoną pętlę, w której jednorazowe obliczenie znajdzie się poza pętlą (nad nią). Zachowaj dokładnie taką samą składnię jak w oryginalnej pętli – po prostu skopiuj jednorazowe obliczenie i wklej je nad pętlą.