lambda函数
Python Lambda 函数笔记
定义
- 匿名函数:无需使用
def
关键字定义,无函数名。 - 单表达式:只能包含一个表达式(不能写多行逻辑)。
- 语法:
lambda 参数: 表达式
核心特点
- 轻量级:适合简单操作,减少代码冗余。
- 即用即弃:通常用于临时场景(如高阶函数参数)。
- 返回值:自动返回表达式结果。
使用场景
- 高阶函数参数(如
map
,filter
,sorted
) - 简化简单逻辑(如条件判断、数学运算)
- 回调函数(如 GUI 事件处理)
示例
# 1. 基础加法
add = lambda x, y: x + y
print(add(3, 5)) # 输出: 8
# 2. 配合 map(对列表元素平方)
nums = [1, 2, 3]
squared = list(map(lambda x: x**2, nums))
print(squared) # 输出: [1, 4, 9]
# 3. 配合 filter(筛选偶数)
evens = list(filter(lambda x: x % 2 == 0, [1, 2, 3, 4]))
print(evens) # 输出: [2, 4]
# 4. 条件表达式(返回较大值)
max_val = lambda a, b: a if a > b else b
print(max_val(10, 7)) # 输出: 10
注意事项
- 避免复杂逻辑:若需多行代码,改用
def
定义函数。 - 可读性:过度使用会降低代码可读性。
- 作用域:与普通函数共享相同作用域规则。
典型面试题
问题:用 lambda 实现按字符串长度排序列表
答案:
words = ["apple", "kiwi", "banana"]
sorted_words = sorted(words, key=lambda s: len(s))
print(sorted_words) # 输出: ['kiwi', 'apple', 'banana']