带有lambda的列表综合-意外结果

时间:2019-06-07 02:31:55

标签: python-3.x

我正在尝试将数字列表转换为lambda列表。无论输入内容如何,​​数字都会成为返回该数字的lambda。但是似乎只有第一个lambda被最后一个lambda覆盖。生成器而不是列表可以正常工作。请参见下面的示例。

lst = [lambda x: y for y in (1,2)]

哪个给:

lst[0](33)
2
lst[1](33)
2

预期:

lst[0](33)
1
lst[1](33)
2

如果我改用发电机,则可以正常工作。

lst = (lambda x: y for y in (1,2))
for f in lst:
    print(f(33))
1
2

0 个答案:

没有答案