可能重複:
What’s going on with the lambda expression in this python function?
What do (lambda) function closures capture in Python?如何創建一個字典,打印自己的名字作爲價值功能
例如,我有串[ '一' 的名單, 'b','c']。
我想生成一個字典,其中包含該列表中的元素('a','b'和'c')作爲鍵,以及將該鍵打印爲值的函數(print('a'))打印('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
我知道,如果我不使用拉姆達有
m = {k:print(k) for k in l}
這是沒有問題的。但我想知道爲什麼lambda不能在這裏工作。
任何想法如何解決這個問題?由於
@ josh-lee你是對的。但似乎答案是不同的。 – WenbinWu