1. 学ぶ
  2. /
  3. コース
  4. /
  5. 高效编写 Python 代码

Connected

演習

一次性计算的循环

会话中已加载一个名为 generations 的整数列表,表示每只 Pokémon 所属的世代。您希望统计各个世代的数量,并计算每个世代占所有整数总数的百分比。

下面这段循环用于完成该任务:

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
  • 从 collections 模块导入 Counter。
  • 使用 Counter() 从列表 generations 中统计各世代的数量,并保存为 gen_counts。
  • 编写一个更优的 for 循环,把一次性计算放在循环外(循环上方)。请与原始 for 循环保持完全相同的语法(只需将那条一次性计算复制并粘贴到循环上方)。