活动地址:CSDN21天学习挑战赛
一、概述
Lambda 表达式(lambda expression)是一个 匿名函数 ,Lambda表达式基于数学中的 λ演算 得名,直接对应于其中的lambda抽象(lambda abstraction),是一个匿名函数,即没有函数名的函数。 Lambda表达式可以表示 闭包 (注意和数学传统意义上的不同)。
lambda 函数是一种小的匿名函数。
lambda 函数可接受任意数量的参数,但只能有一个表达式。
语法:
<函数名>=lambda <参数> : <表达式>
等价于
def <函数名>(<参数>):
<函数体>
return <返回值>
二、lambda函数与def函数
1.lambda表达式的优点:
- lambda函数,只有一行,可以使代码更加简洁
- 对于不需要多次使用的函数,使用lambda表达式使用完之后立即释放,可以提高程序的性能
2.二者的区别
- lambda表达式可以定义一个匿名函数,def定义函数必须要有一个名字
- lambda主体是一个单个的表达式,不是一个代码块
- lambda是一个为编写简单的函数而设计的,def用来处理更大的任务
三、lambda表达式实例
1.一个 lambda 函数,它把作为参数传入的数字加 10,然后打印结果:
#def函数实现
def sam(n):
m = n + 10
return m
print(5)
#lambda表达式实现
x = lambda a : a + 10
print(x(5))
#运行结果
15
2.一个 lambda 函数,它把参数 a 与参数 b 相乘并打印结果:
#def函数实现
def multi(m, n):
return m * n
#lambda表达式实现
x = lambda a, b : a * b
print(x(5, 6))
#运行结果
30
3.与map方法混合使用
实现将一个列表元素变为原来二倍
#def函数实现
def double(n):
return 2*n
lst = [1, 2, 3, 4, 5]
x1 = map(double, lst)
list(x1)
#lambda表达式实现
x2 = map(lambda a:2*a, lst)
list(x2)
运行结果: