使用递归查找嵌套列表总和的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