我正在尝试将数字列表转换为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