14.匿名函数
2020-12-20 本文已影响0人
Stone_説
目录:
1.匿名函数介绍
2.匿名函数的构建
3.举例
1.匿名函数介绍
匿名,即没有名字
函数的定义?调用?
2.匿名函数的构建
Python借助Lambda表达式构建匿名函数
格式:
lambda 参数列表:表达式
>>> lambda x:x**2
<function <lambda> at 0x7f8c00d13790>
>>> (lambda x:x**2)(4)
16
>>> (lambda x,y:(x*y))(3,4)
12
总结:
1.使用lambda关键字来定义匿名函数
2.参数列表不需要小括号
3.冒号是用来分割参数列表和表达式的
4.不需要使用return,表达式的值,就是匿名函数的返回值
5.lambda表达式(匿名函数)只能写在一行上,也被称为单行函数
3.举例
>>> print((lambda :0)())
0
>>> print((lambda x, y=3: x + y)(5))
8
>>> print((lambda x, y=3: x + y)(5, 6))
11
>>> print((lambda x, *, y=30: x + y)(5))
35
>>> print((lambda x, *, y=30: x + y)(5, y=10))
15
>>> print((lambda *args: (x for x in args))(*range(5)))
<generator object <lambda>.<locals>.<genexpr> at 0x7f8c00d15b30>
>>> print((lambda *args: [x+1 for x in args])(*range(5)))
[1, 2, 3, 4, 5]
>>> print((lambda *args: {x+2 for x in args})(*range(5)))
{2, 3, 4, 5, 6}
高阶函数的例子:
>>> [x for x in (lambda *args: map(lambda x: x+1, args))(*range(5))]
[1, 2, 3, 4, 5]
>>> [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))]