15 分钟
Python 进阶

lambda 匿名函数

使用 lambda 编写简洁的小函数

  • 掌握 lambda 语法
  • 在 sorted/filter/map 中使用 lambda
  • 理解 lambda 的适用场景

lambda 语法

示例代码(可运行)

lambda 实战

示例代码(可运行)
⚠️lambda 不要滥用

lambda 只适合简单的一行函数。复杂逻辑用 def 更清晰。PEP 8 建议优先用列表推导式替代 map/filter+lambda。

预测输出
f = lambda x: x ** 2
print(f(5))
找 Buglambda体只能是表达式,不能用语句。if语句要写成三元表达式。
f = lambda x: if x > 0: "正" else "负"
填空题填写空白处的代码
nums = [3,1,2] nums.sort(key= x: x) print(nums) # [1,2,3]
选择题

以下哪个是合法的 lambda?

选择题

关于 lambda,下列说法正确的是?

资深工程师加餐

底层原理 · 大厂视角 · 工程经验,点卡片展开

内层函数(或 lambda)捕获的是外层变量本身,而不是定义那一刻的值;循环里定义的多个函数,循环结束后调用往往都拿到最后的值。解决办法是用默认参数 f(x=x) 立即绑定,或用工厂函数包一层。配合 LEGB 作用域顺序(局部→外层→全局→内建)理解,90% 的作用域谜题都能解开。

挑战任务

lambda挑战

简单+50 XP

用lambda按字符串长度排序单词列表。

lambda挑战
2 个测试用例

课后作业

自定义排序

中等+20 XP

用lambda按字典的value排序。

自定义排序
1 个测试用例