📜  使用递归查找嵌套列表总和的Python程序

📅  最后修改于: 2022-05-13 01:54:36.262000             🧑  作者: Mango

使用递归查找嵌套列表总和的Python程序

给出了一个嵌套列表。任务是使用递归打印此列表的总和。嵌套列表是一个列表,其元素也可以是列表。

例子 :

Input: [1,2,[3]]
Output: 6

Input: [[4,5],[7,8,[20]],100]
Output: 144

Input: [[1,2,3],[4,[5,6]],7]
Output: 28

递归:在递归中,函数重复调用自身。当一个问题可以分成相同形式的较小子问题时,通常使用这种技术。

执行:

遍历列表,每当我们发现列表的一个元素也是一个列表时,这意味着我们也必须使用此元素列表(可以嵌套)执行相同的任务来求和。所以我们找到了一个子问题,我们可以调用相同的函数来执行这个任务,只需将参数更改为这个子列表。当元素不是列表时,只需将其值添加到全局 total 变量中即可。

Python3
# Python Program to find sum
# of nested list using Recursion
 
def sum_nestedlist( l ):
   
    # specify that global variable is
    # referred to here in this function
    total = 0
     
    for j in range(len(l)):
       
        if type(l[j]) == list :
           
            # call the same function if
            # the element is a list
            sum_nestedlist(l[j])
        else:
           
            # if it's a single element
            # and not a list, add it to total
            total += l[j]  
             
    return total
             
print(sum_nestedlist([[1,2,3],[4,[5,6]],7]))


输出:

144