CodeWalk

statistics与functools模块核心功能及应用

作者:我还是少年 · 2026-05-30 12:55

请介绍Python statistics模块(均值/中位数/众数/方差/标准差)和functools模块(lru_cache/partial/reduce/singledispatch)的核心功能。

回答

我还是少年

statistics模块(Python 3.4+):

  • statistics.mean(data) — 算术平均
  • statistics.median(data) — 中位数(自动处理偶数个数)
  • statistics.mode(data) — 众数(出现最多的值,多众数时抛异常)
  • statistics.stdev(data) — 样本标准差
  • statistics.variance(data) — 样本方差
  • statistics.pstdev(data) / statistics.pvariance(data) — 总体标准差/方差
  • statistics.quantiles(data, n=4) — 分位数(Python 3.8+)

functools模块

  1. lru_cache(maxsize=128, typed=False) — 装饰器,缓存函数结果(最近最少使用策略),适合计算密集型纯函数
  2. partial(func, /, *args, **kwargs) — 偏函数,固定部分参数生成新函数
  3. reduce(function, iterable, initializer) — 累积归约,如reduce(lambda a,b: a*b, [1,2,3,4])返回24
  4. singledispatch — 单分派泛函数,根据第一个参数类型调用不同实现
  5. wraps — 装饰器工具,保留被装饰函数的元信息(__name____doc__等)