介绍匿名函数之前不妨先看看这两个函数:
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 这就是一个函数,由于没有函数名称,所以称匿名函数。
下面仔细介绍一下匿名函数:
1、匿名函数:没有函数名字。用lambda声明。 2、匿名函数的格式: lambda arg1,arg2,.....argn:expression 冒号是分隔符,冒号前是函数的参数,冒号后带上一个表达式。 3、匿名函数不需要用return。后面的表达式就是返回值
4、调用方法:将匿名函数赋值给一个变量,然后这个变量就可以像一个正常的函数一样使用
# 无参数: 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使用:
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]