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

このループを、1回だけ行えばよい計算をループの外に移動して、より効率的にしましょう。

지침

100 XP
  • collections モジュールから Counter をインポートしてください。
  • Counter() を使って、generations リストから各世代の件数を数え、gen_counts として保存してください。
  • 一度だけ 行えばよい計算をループの外(ループの上)に置く、より良い for ループを書いてください。元の for ループとまったく同じ構文を使い(その一度きりの計算をループの上に単純にコピー&ペーストして)、実装してください。