想知道 lambda 函数在 python 中的工作原理
Want to know how lamda function work in python
我正在尝试理解 python 中的 lambda 函数并得到了这个。
当我将 lambda 函数的实例存储在 Dict 中时。它在循环内给出了预期的结果。但是在循环之外,我认为它总是存储最后一个实例。
有人可以解释为什么会这样吗?以及当我们存储它们的实例时 lambda 函数实际上是如何工作的。
代码:
d = {}
for x in range(4):
d[x] = lambda n: str(n*x)
print(d[x](1))
print(d[1](2))
print(d[2](2))
print(d[3](2))
输出:
0
1
2
3
6
6
6
给定一些 x
这两个函数是等价的:
f1 = lambda n: str(n * x)
def f2(n):
return str(n * x)
除此之外,您所做的就是将几个函数(x
的多个值)放入字典中。
我正在尝试理解 python 中的 lambda 函数并得到了这个。
当我将 lambda 函数的实例存储在 Dict 中时。它在循环内给出了预期的结果。但是在循环之外,我认为它总是存储最后一个实例。
有人可以解释为什么会这样吗?以及当我们存储它们的实例时 lambda 函数实际上是如何工作的。
代码:
d = {}
for x in range(4):
d[x] = lambda n: str(n*x)
print(d[x](1))
print(d[1](2))
print(d[2](2))
print(d[3](2))
输出:
0
1
2
3
6
6
6
给定一些 x
这两个函数是等价的:
f1 = lambda n: str(n * x)
def f2(n):
return str(n * x)
除此之外,您所做的就是将几个函数(x
的多个值)放入字典中。