【发布时间】:2017-09-04 02:33:03
【问题描述】:
我正在尝试创建一个函数列表,然后将其应用于数字列表。我通过遍历一系列数字并使用 for 循环中的每个数字定义一个 lambdas 函数来做到这一点。然后使用第二个 for 循环将每个函数应用于相同的 10 个数字列表。
问题是我的 lambda 列表似乎都采用了 for 循环的最终值。
fx_lst = []
for k in range(1,3,1):
func = lambda x_: k * x_
fx_lst.append(func)
xlst = range(1,10,1)
for fx in fx_lst:
ylst = map(lambda xin_: fx(xin_), xlst)
print i, ylst
ylst 打印: [2,4,6...18] [2,4,6...18]
显然我不了解 lambda 存储变量信息的方式。
【问题讨论】: