lambda

lambda 参数列表:表达式

lambda x:x**2

(lambda x : x ** 2)(4)  #调用

 

参数列表不需要小括号

冒号是用来分割参数列表和表达式的

不需要return,表达式的值,就是匿名函数的返回值

lambda表达式只能写在一行上面,称为单行函数

 

用途:

在高阶函数传参时,使用lambda表达式,往往能简化代码

print(1, (lambda: 0)())  # 0
print(2, (lambda x, y=3: x + y)(5))  # 8
print(3, (lambda x, y=3: x + y)(5, 6))  # 11
print(4, (lambda x, *, y=30: x + y)(5))  # 35
print(5, (lambda x, *, y=30: x + y)(5, y=10))  # 15
print(6, (lambda *args: (x for x in args))(*range(5)))  # <generator object 
print(7, (lambda *args: [x+1 for x in args])(*range(5)))  # [1,2,3,4,5]
print(8, (lambda *args: {x+2 for x in args})(*range(5)))   # {2,3,4,5,6}

print(9, [x for x in (lambda *args: map(lambda x: x+1, args))(*range(5))])
#  [1,2,3,4,5]
print(10, [x for x in (lambda *args: map(lambda x: (x+1, args), args))(*range(5))])
#  [(1, (0, 1, 2, 3, 4)), (2, (0, 1, 2, 3, 4)), (3, (0, 1, 2, 3, 4)), (4, (0, 1, 2, 3, 4)), (5, (0, 1, 2, 3, 4))]


 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值