Python匿名函数
匿名:就是没有名字。
匿名函数,即没有名字的函数
没有名字如何定义,如何调用,如果能调用,如何使用。
Python借助lambda表达式构建匿名函数。
格式:
Lambda参数列表:表达式
(Lambda x:x**2)(4)
#foo = lambda x:x+1
foo(1)
上下式等同:
#def foo(x):
return x+1
foo(1)
使用关键字来定义匿名函数:
参数列表不需要小括号
冒号是分隔参数和表达式的
不需要return ,表达式的值就是匿名函数的返回值。
只能写在一行上面,被称为单行函数。
用途:在高阶函数传参时候,使用lambda表达式,往往能简化代码.
print((lambda x,y=3:x+y)(5))
print((lambda :0)())
print((lambda x,y=3:x+y)(5,6))
print((lambda x,*,y=30:x+y)(5))#y 使用的是缺省值。
print((lambda *args:(x for x in args))(*range(5)))
print((lambda *args:[x+1 for x in args])(*range(5)))
[1, 2, 3, 4, 5]
print((lambda *args:{x+1 for x in args})(*range(5)))
{1, 2, 3, 4, 5}
print([x for x in (lambda *args: map(lambda x: x+1,args))(*range(5))])
[1, 2, 3, 4, 5]
print([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))]
浙公网安备 33010602011771号