【发布时间】:2021-02-15 20:08:53
【问题描述】:
假设我想要一个函数族f[0], f[1], ... f[9],这样f[y](x) = x + 2 * y。
为了实现这一点,我尝试了以下列表理解:
fs = [(lambda x : x + 2 * y) for y in range(10)]
但是,这根本不起作用。例如,fs[0](2) 的计算结果为 20,而不是所需的 4。
这里发生了什么?这是一些奇怪的范围问题吗?
我也尝试过[(lambda x: x + 2 * y) for y in the list(range(10))] 之类的方法,但这些都没有帮助。
【问题讨论】:
标签: python lambda scope list-comprehension higher-order-functions