通八洲科技

Python高阶函数mapfilterreduce使用_函数式编程实战【技巧】

日期:2025-12-21 00:00 / 作者:舞夢輝影
Python的map、filter、reduce是函数式编程三大核心:map用于批量转换(惰性求值,注意返回值非None);filter按真值筛选(非仅非空);reduce需导入且设初值,适用于累积计算。

Python 的 mapfilterreduce 是函数式编程的三大核心高阶函数,它们能帮你写出更简洁、可读性更强、副作用更少的代码。关键不在于“炫技”,而在于选对场景、写对逻辑、避开常见坑。

map:批量转换,别改原数据,也别让它返回 None

map(func, iterable) 对可迭代对象每个元素调用函数,返回一个 map 对象(惰性求值)。常用于统一格式化、类型转换或简单计算。

filter:筛选要“真值”,不是“非空”

filter(func, iterable) 保留使函数返回真值(truthy)的元素。很多人误以为它过滤 None 或空字符串,其实它判断的是布尔上下文结果。

reduce:累积计算,别硬刚,记得导入和设初值

reduce 不在内置命名空间里,必须从 functools 导入:from functools import reduce。它把函数依次作用于序列元素,累计出单个结果。

组合使用:链式处理,比嵌套更易读

三者可按“筛选 → 转换 → 归约”顺序串联,配合生成器表达式或转为 list 控制求值时机。