小编mic*_*bad的帖子

使用lambda函数的字典理解会产生错误的结果

我在Python 3.5.1中尝试了以下代码:

>>> f = {x: (lambda y: x) for x in range(10)}
>>> f[5](3)
9
Run Code Online (Sandbox Code Playgroud)

很明显这应该回归5.我不明白其他价值来自何处,我无法找到任何东西.

看起来它与引用相关 - 它总是返回答案f[9],这是最后分配的函数.

这里的错误是什么,应该如何做才能使其正常工作?

python lambda dictionary

21
推荐指数
2
解决办法
2392
查看次数

标签 统计

dictionary ×1

lambda ×1

python ×1