<分区>
我想将 lambda 用作返回对象的函数。看看 lambda x: print(item)
,正如所写的那样,预期的结果是 holder[str(item)]
将存储一个函数,该函数返回当前项目。但我的代码显示它总是返回最后一项。
为什么会这样?有没有办法传递实际返回项目的函数?
items = [1,2,3]
holder = {}
for item in items:
holder[str(item)] = lambda x: print(item)
holder['1'](None)
holder['2'](None)
holder['3'](None)
输出:
3
3
3
预期的行为是:
1
2
3