【python】lambda
lambda
lambda是匿名函数,也就是没有名字的函数。lambda的语法非常简单:

下面是一个lambda表达式的简单例子,我们可以把lambda表达式赋值给一个变量,然后通过这个变量来使用它:
>>> my_sum = lambda x, y: x+y
>>> my_sum(1, 2)
3

lambda默认参数详解
语法:
lambda [parameter_list, param=val] : expression
参数:
| 参数 | 描述 |
|---|---|
| lambda | 定义 lambda 表达式所使用的关键字,所有的 lambda 表达式前面都必须使用该关键字。 |
| parameter_list | 参数列表。 |
| param | 形式参数。 |
| val | 形式参数 param 的默认值。 |
| expression | 返回值。 |
1. 例子
sum = lambda x, y=100: x + y
print("lambda res =", sum(512, 512))
print("lambda res =", sum(512))
输出:
lambda res = 1024
lambda res = 612
lambda表达式参数运行时绑定
因为 lambda 表达式的参数是运行时动态绑定的,因此,我们运行程序时,x 的值为 20,因此我们程序最终输出的结果为 40 和 50,现在我们将程序修改为以下代码:
x = 10
add = lambda y : x + y
x = 20
# lambda 表达式参数是运行时绑定的
print("lambda add =", add(20))
print("lambda add =", add(30))
输出:
lambda add = 40
lambda add = 50
x = 10
add = lambda y, x=x : x + y
x = 20
# lambda 表达式参数是运行时绑定的
print("lambda add =", add(20))
print("lambda add =", add(30))
输出:
lambda add = 30
lambda add = 40
我们将参数 x 的值设置为默认参数,再次运行我们的程序发现,此时使用的 x 不再是动态绑定的 20 了,而是使用的 10,因此使用 lambda 表达式的默认参数可以解决参数的运行时绑定问题。
参考资料
1. Python中的lambda、map、filter、reduce、zip用法介绍
2. Python lambda默认参数
3. lambda表达式与for循环的搭配用法