Skip to main content
 首页 » 编程设计

python之递归获取嵌套列表的总和

2025年05月04日24kuangbin

<分区>

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])) 

这是我的尝试。如果列表像这样非常简单,这将起作用:

print(rsum([1,2,[3,4],5])) -> 15 

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

我只是想知道这是否可以通过负 1 策略来实现?我已经被这个难住了一段时间。

不允许循环