使用理解或循环制作函数列表

时间:2015-05-06 08:01:07

标签: python lambda list-comprehension

我需要一个功能列表,例如:

flist = []
flist.append(lambda x : 2*x )
flist.append(lambda x : 4*x )
flist.append(lambda x : 6*x )
print flist[0](1), flist[1](1), flist[2](1)

这是有效的,输出是2 4 6,正如预期的那样。 现在,如果我想从for循环中获取它:

flist = []
for n in range(3):
    flist.append(lambda x : 2*(n+1)*x)
print flist[0](1), flist[1](1), flist[2](1)

或使用理解:

flist = []
flist = [lambda x : 2*(n+1)*x for n in range(3)]
print flist[0](1), flist[1](1), flist[2](1)

......在这两种情况下我得到6 6 6。 当然我可以使用诸如f(x,n)之类的函数而不是列表。我需要列表的原因是在numpy.piecewise()或select()函数中使用。 有任何解释/建议吗?

0 个答案:

没有答案