我想创建lambdas一个给定大小n的列表(因此手动分配不起作用),其中每个元素取决于先前的函数并且它在列表中索引。
我尝试过各种类似的东西:
n = 3
func_list = [lambda x : 1]
for k in range(1,n):
func_list.append(lambda x : func_list[k-1](x) * (x+k))
print(list(map(lambda f : print(f(1)), func_list)))
但在所有尝试中,我都收到了关于recursion深度的错误消息:
RecursionError Traceback (most recent call last)
<ipython-input-296-f35123a830c4> in <module>
2 for k in range(1,3):
3 func_list.append(lambda x : func_list[k-1](x) * (x+k))
----> 4 print(list(map(lambda f : print(f(1)), func_list)))
<ipython-input-296-f35123a830c4> in <lambda>(f)
2 for k in range(1,3):
3 func_list.append(lambda x : func_list[k-1](x) * (x+k))
----> 4 print(list(map(lambda f : print(f(1)), func_list)))
<ipython-input-296-f35123a830c4> in <lambda>(x)
1 func_list = [lambda x : 1]
2 for k in range(1,3):
----> 3 func_list.append(lambda x : func_list[k-1](x) * (x+k))
4 print(list(map(lambda f : print(f(1)), func_list)))
... last 1 frames repeated, from the frame below ...
<ipython-input-296-f35123a830c4> in <lambda>(x)
1 func_list = [lambda x : 1]
2 for k in range(1,3):
----> 3 func_list.append(lambda x : func_list[k-1](x) * (x+k))
4 print(list(map(lambda f : print(f(1)), func_list)))
RecursionError: maximum recursion depth exceeded
斯蒂芬大帝
婷婷同学_
相关分类