我需要一个功能列表,例如:
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()函数中使用。 有任何解释/建议吗?