Python 之 匿名函数 Lambda 的深入浅出
1、概念介绍
1.1 匿名函数
- 没有名字的函数
- 在 Python 中,使用 lambda 表达式构造匿名函数
1.2 Lambda 表达式
使用 lambda 关键字定义匿名函数,格式为 lambda [参数列表]: 表达式
参数列表不需要小括号,无参就不写参数
冒号用来分割参数列表和表达式部分
不需要使用 return。表达式的值,就是匿名函数的返回值。
表达式中不能出现等号
lamdba 表达式(匿名函数)只能写在一行上,也成为单行函数
匿名函数往往用在为高阶函数传参时,使用 lambda 表达式,往往能简化代码
1.3 Lambda 参数详解
1.3.1 无参
print(lambda : 100)
print((lambda : 100)())
<function <lambda> at 0x00000000092773A8>
100
1.3.2 单参
print(lambda x: 'I am x')
print((lambda x: 'I am {}.'.format(x))('JC'))
<function <lambda> at 0x0000000007626438>
I am JC.
1.3.3 默认参数
print(lambda a, b, c=100: a + b + c)
print((lambda a, b, c=100: a + b + c)(1, 10))
<function <lambda> at 0x0000000009277DC8>
111
1.3.4 args
print(1, lambda *args: args)
print(2, (lambda *args: args)([1, 10]))
print(3, (lambda *args: args)(*[1, 10]))
print(4, (lambda *args: args)(range(3)))
print(5, (lambda *args: args)(*range(3)))
1 <function <lambda> at 0x0000000009277288>
2 ([1, 10],)
3 (1, 10)
4 (range(0, 3),)
5 (0