Python学习笔记(一): lambda

lambda函数是一种匿名函数,它创建了一个之后能够调用的函数,但是它返回了一个函数而不是将这个函数赋值给一个变量。lambda是一个表达式,而不是一个语句,因此它可以出现在def不允许出现的地方

lambda表达式形式:
关键字lambda,之后是任意数量的参数(可以为0,但要求执行没有参数的表达式,否则会报错),紧跟一个冒号,之后只能有一个表达式

lambda argument1, argument2,... argumentN: expression using arguments

用lambda创建函数

#lambda表达式将结果赋值给一个变量名,之后使用这个变量名调用函数
f = lambda x, y, z: x + y + z
print(f(2, 3, 4))
# 9

#默认参数也能在lambda参数中使用
x = lambda a=1, b=2, c=3: a + b + c
x(1)
# 6

#在lambda中嵌套逻辑
lower = lambda x, y: x if x < y else y
lower(1, 2)
lower(2, 1)
# 1
# 1

嵌套lambda和作用域
在def内使用lambda就像一个嵌套的def语句,同样遵循相同的作用域查找法则

#嵌套的lambda能够获取上层函数作用域中变量名x的值
def func(x):
    return lambda y: x + y
f = func(99)
print(f)
# <function func.<locals>.<lambda> at 0x000002EB8E3A3BF8>
f(1)
# 100

#将上面的def改为lambda,lambda也能获取任意上层lambda中的变量名的值
func = lambda x: (lambda y: x + y))
f = func(99)
f(1)
# 100

一般lambda是为编写简单函数而设计的,而def用来处理更大的任务

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值