Python的map、filter、reduce是函数式编程三大核心:map用于批量转换(惰性求值,注意返回值非None);filter按真值筛选(非仅非空);reduce需导入且设初值,适用于累积计算。

Python 的 map、filter 和 reduce 是函数式编程的三大核心高阶函数,它们能帮你写出更简洁、可读性更强、副作用更少的代码。关键不在于“炫技”,而在于选对场景、写对逻辑、避开常见坑。
map(func, iterable) 对可迭代对象每个元素调用函数,返回一个 map 对象(惰性求值)。常用于统一格式化、类型转换或简单计算。
map 的情况:逻辑简单、只涉及一两个表达式(如 [x * 2 for x in nums] 比 list(map(lambda x: x*2, nums)) 更直观)map 的场景:函数已定义好、逻辑稍复杂、或需复用(比如 map(str.strip, lines) 或 map(json.loads, json_strings))None,map 结果里也会是 None——这容易引发后续 AttributeError,建议函数明确返回值filter(func, iterable) 保留使函数返回真值(truthy)的元素。很多人误以为它过滤 None 或空字符串,其实它判断的是布尔上下文结果。
filter(None, [0, 1, '', 'hello', [], [1]]) 返回 [1, 'hello', [1]] —— 因为 0、''、[] 在 bool 中为 False
filter(lambda x: x > 10, nums) 比 filter(lambda x: True if x > 10 else False, nums) 干净得多getattr(obj, 'field') 或点号访问(确保对象有该属性),否则加 hasattr 防错reduce 不在内置命名空间里,必须从 functools 导入:from functools import reduce。它把函数依次作用于序列元素,累计出单个结果。
PHP 独特的语法混合了 C、Java、Perl 以及 PHP 自创新的语法。它可以比 CGI或者Perl更快速的执行动态网页。用PHP做出的动态页面与其他的编程语言相比,PHP是将程序嵌入到HTML文档中去执行,执行效率比完全生成HTML标记的CGI要高许多。下面介绍了十个PHP高级应用技巧。 1, 使用 ip2long() 和 long2ip() 函数来把 IP 地址转化成整型存储到数据库里
454
立即学习“Python免费学习笔记(深入)”;
sum、max、min 更语义化,优先用内置)lambda acc, x: acc + x 是标准写法reduce(lambda a,b: a+b, [], 0) 返回 0;不传则抛 TypeError
reduce 配合 dict.update 或解包更清晰(例如 reduce(lambda a,b: {**a,**b}, dict_list))三者可按“筛选 → 转换 → 归约”顺序串联,配合生成器表达式或转为 list 控制求值时机。
words = "the quick brown fox jumps".split()count = len(list(filter(lambda w: len(w) > 3, map(str.lower, words))))len([w.lower() for w in words if len(w) > 3]),兼顾可读与性能cleaned = reduce(lambda data, step: step(data), [filter_nonempty, parse_json, enrich_with_api], raw_data)
以上就是Python高阶函数mapfilterreduce使用_函数式编程实战【技巧】的详细内容,更多请关注php中文网其它相关文章!
编程怎么学习?编程怎么入门?编程在哪学?编程怎么学才快?不用担心,这里为大家提供了编程速学教程(入门课程),有需要的小伙伴保存下载就能学习啦!
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号