开始使用免费开始使用

一次性计算的循环

会话中已加载一个名为 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)
    )

让我们通过将一次性计算移到循环外,使这个循环更高效。

本练习是课程的一部分

高效编写 Python 代码

查看课程

练习说明

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

交互式实操练习

通过完成这段示例代码来试试这个练习。

# 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))
编辑并运行代码