递归 - 对嵌套列表求和
Recursion - summing a nested list
我正在尝试将嵌套列表中的所有数字相加作为递归练习。但是,输出给出 1 而不是所有数字的总和。我哪里错了?
我尝试遍历嵌套列表,如果它是一个列表,那么它会再次调用相同的函数。如果它不是列表,它会将数字添加到总数中。
L = [1,2,3,[1, 2, 3],[4, 5, 6],[7, 8, 9]]
def sumL(input):
total = 0
for i in input:
if type(i) is list:
total += sumL(i)
else:
total += i
return total
sumL(L)
您将在 for 循环的第一次迭代中退出。由于 i
等于 1
,然后您键入检查它,然后您 +=
total
并立即 return。你应该 return 在 退出 for 循环之后。
def sumL(ls):
total = 0
for i in ls:
if isinstance(i, list):
total += sumL(i)
else:
total += i
return total
注意*不要使用 input
作为参数,因为它是函数的名称
我正在尝试将嵌套列表中的所有数字相加作为递归练习。但是,输出给出 1 而不是所有数字的总和。我哪里错了?
我尝试遍历嵌套列表,如果它是一个列表,那么它会再次调用相同的函数。如果它不是列表,它会将数字添加到总数中。
L = [1,2,3,[1, 2, 3],[4, 5, 6],[7, 8, 9]]
def sumL(input):
total = 0
for i in input:
if type(i) is list:
total += sumL(i)
else:
total += i
return total
sumL(L)
您将在 for 循环的第一次迭代中退出。由于 i
等于 1
,然后您键入检查它,然后您 +=
total
并立即 return。你应该 return 在 退出 for 循环之后。
def sumL(ls):
total = 0
for i in ls:
if isinstance(i, list):
total += sumL(i)
else:
total += i
return total
注意*不要使用 input
作为参数,因为它是函数的名称