可能重复:
这个 python 函数中的 lambda 表达式是怎么回事?
(lambda) 函数闭包在 Python 中捕获了什么?
例如,我有一个字符串列表 ['a', 'b', 'c']。
我想生成一个字典,该列表中的元素('a','b'和'c')作为键,以及将键打印为值的函数(print('a'),print('b '), 打印('c'))
from __future__ import print_function
l = ['a', 'b', 'c']
m = {k: lambda : print(k) for k in l}
我写了上面的代码。但结果不对
m['a']()
c
m['b']()
c
我知道如果我不在那里使用 lambda
m = {k:print(k) for k in l}
这没有问题。但我想知道为什么 lambda 在这里不起作用。
知道如何解决这个问题吗?谢谢