Lambda表达式与条件判断的深度结合

基础语法结构

# 传统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适用于短小的一次性操作

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值