lambda表达式用于简洁定义单表达式匿名函数,配合map、filter、reduce等高阶函数可高效处理数据,如sorted(set(map(str.upper, filter(lambda w: len(w) > 3, words))))实现筛选、转换、去重、排序一行化。

lambda表达式:简洁定义匿名函数
lambda是Python中创建小型匿名函数的快捷方式,适用于只需要一次使用、逻辑简单的场景。它不使用red">def关键字,而是用lambda加参数列表和一个表达式构成,自动返回结果。
比如排序时按字典的某个键排序:
- students = [{'name': 'Alice', 'score': 85}, {'name': 'Bob', 'score': 92}]
- sorted(students, key=lambda x: x['score']) → 按分数升序排列
注意:lambda只能包含一个表达式,不能写语句(如if、for、赋值等),也不支持文档字符串。
map、filter、reduce:三大核心高阶函数
高阶函数指接受函数作为参数或返回函数的函数。Python内置的map、filter、reduce是最典型的代表,配合lambda可大幅简化数据处理流程。
PHP5学习对象教程由美国人古曼兹、贝肯、瑞桑斯编著,简张桂翻译,电子工业出版社于2007年12月1日出版的关于PHP5应用程序的技术类图书。该书全面介绍了PHP 5中的新功能、编程方法及设计模式,还分析阐述了PHP 5中新的数据库连接处理、错误处理和XML处理等机制,帮助读者系统了解、熟练掌握和高效应用PHP。
立即学习“Python免费学习笔记(深入)”;
-
map(func, iterable):对可迭代对象每个元素应用函数,返回map对象(需转list等才能查看)
list(map(lambda x: x**2, [1, 2, 3])) → [1, 4, 9] -
filter(func, iterable):保留使函数返回True的元素
list(filter(lambda x: x > 0, [-2, -1, 0, 1, 2])) → [1, 2] -
reduce(func, iterable):需从functools导入,将函数累积作用于序列(如求和、连乘)
from functools import reduce
reduce(lambda x, y: x * y, [2, 3, 4]) → 24
自定义高阶函数:提升代码复用性
除了内置函数,你也可以轻松写出自己的高阶函数。关键在于把“操作逻辑”抽象成参数传入,让函数更通用。
- 例如实现一个通用的数据转换器:
def transform(data, operation):
return [operation(x) for x in data]
调用:transform([1, 2, 3], lambda x: x + 10) → [11, 12, 13] - 再比如带条件的处理:
def conditional_apply(data, condition, action):
return [action(x) if condition(x) else x for x in data]
调用:conditional_apply([1, 2, 3, 4], lambda x: x % 2 == 0, lambda x: x * 10) → [1, 20, 3, 40]
实际组合应用:一行代码处理复杂逻辑
真实开发中,lambda常与高阶函数链式配合,替代多层for循环,让意图更清晰。
不复杂但容易忽略










