我想做函数编写
我有功能double_list(list)
,
double_list([[1]]) >>> [[1],[1]]
,我想创建一个递归函数,该函数将构成n次重复列表,例如recursion(doublelist, 2) >>> [[1],[1],[1],[1]]
,而不是double_list(double_list([[1]]))
,我尝试了很多方法,但都没有用我得到[[1],[1]]
的时候是否有递归的方法可以在不使用任何模块的情况下做到这一点?
这是我尝试过的:
def recursion(k, lst):
if k > 0:
return recursion(k-1, lst)
lst = double_list(lst)
return lst
答案 0 :(得分:1)
您可以尝试
def double_list(ls):
ls.extend([i[:] for i in ls])
return ls
def recursion(k, lst):
if k > 0:
return recursion(k-1, double_list(lst))
return lst
print(recursion(2, [[1]]))
会返回
[[1], [1], [1], [1]]
答案 1 :(得分:0)
def recursion(func, arg, n):
if n>1:
return recursion(func, func(arg), n-1)
else:
return func(arg)
print(recursion(double_list, [[1]], 2))