基础语法结构
# 传统if-else写法
func = lambda x: x**2 if x > 0 else 0
# 多条件嵌套
grade = lambda score: 'A' if score>=90 else ('B' if score>=80 else 'C')
三元表达式优化
使用(false_value, true_value)[condition]技巧:
parity = lambda n: ("奇数", "偶数")[n % 2 == 0]
内置函数的lambda化应用
与map/filter配合
# 过滤偶数并平方
list(map(lambda x: x**2, filter(lambda x: x%2==0, range(10))))
reduce的累计计算
from functools import reduce
factorial = lambda n: reduce(lambda x,y: x*y, range(1,n+1))
序列拆包的高级用法
多变量同时处理
points = [(1,2), (3,4)]
list(map(lambda xy: xy[0]+xy[1], points)) # 传统方式
list(map(lambda x,y: x+y, *zip(*points))) # 拆包优化
字典项处理
dict_map = lambda f, d: {k:f(v) for k,v in d.items()}
实战案例:数据清洗管道
clean_data = lambda raw: list(
map(lambda x: x.strip().upper(),
filter(lambda x: len(x)>0,
raw.split(',')))
)
性能提示:复杂逻辑建议改用def定义,lambda适用于短小的一次性操作