小编Ali*_*i89的帖子

以递归方式获取嵌套列表的总和

def rsum(L):
    if len(L) == 1:
        result = L[0]
    elif type(L[0]) == type([]):
        if len(L[0]) == 0:
            result = []
        else:
            current = [L[0][0]]
            rest = L[0][1:]
            result = rsum(current) + rsum(rest) + rsum(L[1:])
    else:
        result = L[0] + rsum(L[1:])
    return result


print(rsum([1,2,[3,4],5]))
Run Code Online (Sandbox Code Playgroud)

这是我的尝试.如果列表非常简单,这将工作:

print(rsum([1,2,[3,4],5])) -> 15
Run Code Online (Sandbox Code Playgroud)

但复杂的是这样的:[[1],[2,[3]],[]]失败了

我只是想知道这是否可以通过减1策略来做到这一点?我已经被困了一段时间了.

不允许循环

python recursion

1
推荐指数
1
解决办法
2171
查看次数

标签 统计

python ×1

recursion ×1