介绍匿名函数以前不妨先看看这两个函数:express
def add(x,y): return x+y print(add(1,2)) #3
f=lambda x,y:x+y
print(f(1,2))
上面这两段代码实现的功能是彻底同样的。第二段代码里面:lambda x,y:x+y 这就是一个函数,因为没有函数名称,因此称匿名函数。函数
下面仔细介绍一下匿名函数:spa
1、匿名函数:没有函数名字。用lambda声明。 2、匿名函数的格式: lambda arg1,arg2,.....argn:expression 冒号是分隔符,冒号前是函数的参数,冒号后带上一个表达式。 三、匿名函数不须要用return。后面的表达式就是返回值
四、调用方法:将匿名函数赋值给一个变量,而后这个变量就能够像一个正常的函数同样使用
# 无参数: f=lambda :'abc' print(f()) #'abc' #带多个参数的 f=lambda a,b,c: a+b+c print(f(1,2,3)) #6 #带默认参数 f=lambda a,b,c=4: a+b+c print(f(1,2)) #7
匿名函数的高级使用技巧:结合map.reduce,filter使用:code
from functools import reduce data=[1,2,3,4,5,6,7,8,9,10] print(reduce(lambda x,y:x+y,data)) #55
data=[1,2,3,4,5,6,7,8,9,10] print(list(map(lambda x:x*x,data))) #输出为[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]