匿名函数(lambda)
lambda匿名函数的格式:
lambda argument_list : expersion
冒号前argument_list是参数,可以有多个,用逗号隔开,冒号右边的expersion为表达式。
lambda返回值是一个函数的地址,也就是函数对象。
匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量。
以map()
函数为例,计算f(x)=x2时,除了定义一个f(x)
的函数外,还可以直接传入匿名函数:
>>> list(map(lambda x: x * x, [1, 2, 3, 4, 5, 6, 7, 8, 9]))
[1, 4, 9, 16, 25, 36, 49, 64, 81]
通过对比可以看出,匿名函数lambda x: x * x
实际上就是:
def f(x):
return x * x
例1、取奇数
L = list(filter(lambda x:x%2==1, range(1, 20)))
print(L)
输出:
[1, 3, 5, 7, 9, 11, 13, 15, 17, 19]
例2、计算[1, 2, 3, 4, 5, 6, 7, 8, 9,10]的平方
#匿名函数lambda x: x * x实际上就是:
# def f(x):
# return x * x
L=list(map(lambda x: x * x, range(1,11)))
print(L)
输出:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
#匿名函数也是一个函数对象,也可以把匿名函数赋值给一个变量,再利用变量来调用该函数
f = lambda x: x * x
print(f(5))
d=lambda x,y: x * x + y * y
print(f(1,2))
输出:
25
5