可能重复:
在 lambda 表达式中使用变量的值
我正在使用 python 并试图找出我在使用 lambda 函数时遇到的问题。
从下面的代码中,我期望创建两个 lambda 函数,每个函数都有一个不同的 x,输出应该是
1 2
但输出是 2 2
为什么?我怎样才能制作两个不同的功能?使用定义?
def main():
d = {}
for x in [1,2]:
d[x] = lambda : print(x)
d[1]()
d[2]()
if __name__ == '__main__':
main()