第十二天python3 匿名函数
python借助lambda表达式构建匿名函数;
参数列表不需要小括号;
冒号是用来分割参数列表和表达式的;
不需要使用return,表达式的值,就是匿名函数返回值;
lambda表达式(匿名函数)只能写在一行上,被称为单行函数;
用途:
在高阶函数传参时,使用lambda表达式,往往能简化代码;
格式:
lambda 参数列表:表达式 lambda x:x**2 (lambda x:x**2)(4) #调用 foo=lambda x,y:(x+y)**2 #不推荐使用 foo(2,1) def foo(x,y): #建议使用普通函数 return (x+y)**2 foo(2,1)
示例:
print((lambda :0)()) print((lambda x,y=3:x+y)(5)) print((lambda x,y=3:x+y)(5,6)) print((lambda x,*,y=30:x+y)(5,y=10)) print((lambda *args:[x for x in args])(*range(5))) print((lambda *args:[x+1 for x in args])(*range(5))) print((lambda *args:{x+2 for x in args})(*range(5))) '''高阶函数''' [x for x in (lambda *args: map(lambda x:x+1,args))(*range(5))] [x for x in (lambda *args: map(lambda x: (x+1,args),args))(*range(5))] ''' 执行结果: 0 8 11 15 [0, 1, 2, 3, 4] [1, 2, 3, 4, 5] {2, 3, 4, 5, 6} '''