🐸

小工具箱

数据与文本工具python-data-tinkerer-21-the-tiny-toolbox
奖励: 120 XP
|

小工具箱

到了工匠台这一章的结尾,Hoppy 已经练过函数返回值,也练过把列表整理得更紧凑。现在只补一块很小、但很实用的拼图:Python 其实自带一些现成小工具,不是每个动作都要你从零手搓。

今天我们只拿出一个够用的小工具:statistics.mean()。重点不是背模块名,而是建立一种轻松的习惯——当你需要一个常见小动作时,先想想:“Python 有没有已经准备好的工具?我能不能查一下文档?”

有时候,你只需要把列表交给一个现成工具

作为教学示例,这个动作可以先缩小来看。假设有个很小的函数已经交回一份灯笼数量列表,你可以直接把这个返回值交给标准库里的 mean(),让它负责“求平均”这一步。

import statistics

def gather_lantern_counts():
  return [2, 5, 8]

lantern_counts = gather_lantern_counts()
average_count = statistics.mean(lantern_counts)

print("Lantern counts:", lantern_counts)
print("Average count:", average_count)

这里真正想让你看见的,只有“交接”这个动作:前一步给出一个列表,后一步用现成工具做汇总。等你回到真正的 starter 时,会把这个习惯用到已经准备好的分数列表上;而这里故意保持成一个更小的玩具例子,避免太早把整题直接演完。

真正要带走的,不是模块清单,而是“先找工具”意识

这节 checkpoint 课最重要的收束,不是让你背下 statistics 模块里还有什么,而是知道:当你遇到“平均值、计数、日期、路径”这种高频小任务时,可以先查一查文档,再决定要不要自己写。会查、会用,比硬记一个长名单更重要。

1
先接住函数返回的列表

保留已经准备好的 collect_scores(raw_scores),让 cleaned_scores 继续来自这个函数返回值。今天不是重写清理逻辑,而是把它接到一个现成工具上。

2
导入一个小小的标准库工具

导入 statistics,或者直接从里面导入 mean。然后把 cleaned_scores 交给它,得到 average_score

3
让输出同时展示“准备好的列表”和“工具给出的汇总”

跑起来后,你应该同时看到清理后的分数列表和平均分。这能帮你看清:函数输出可以继续被后面的工具消费,整个流程仍然很轻。

不用背标准库大全

你今天只需要会用一个小工具就够了。如果以后忘了模块名,也完全没关系。先描述任务,再去查 Python 文档或搜索 “python mean statistics”,这就是成熟的小工具思维。

参考答案
点击展开
参考答案:
import statistics

raw_scores = [" 12", "15 ", " 9 ", "18"]

def collect_scores(raw_values):
  return [int(raw_value.strip()) for raw_value in raw_values if raw_value.strip()]

cleaned_scores = collect_scores(raw_scores)
average_score = statistics.mean(cleaned_scores)

print("Cleaned scores:", cleaned_scores)
print("Average score:", average_score)
高级技巧
想更进一步?点击展开

这一课故意不继续展开 statistics 里的别的函数,也不比较更多模块。现在的目标只是让你知道:当一个任务很常见时,不一定要自己造轮子,可以先试着看看标准库有没有轻量现成件。

这也刚好把本章前面的内容串起来了:函数可以返回结果,列表可以先被清理,而小工具可以继续消费这些结果。到这里,你已经更像是在搭一个真正的小工具,而不是只写零散语句。

Loading...
终端输出
Terminal
Ready to run...