我試圖將嵌套串列中的所有數字相加作為遞回的練習。但是,輸出給出 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)
uj5u.com熱心網友回復:
您將在 for 回圈的第一次迭代中退出。i等于1,然后你輸入檢查它,然后你并 = total立即回傳。您應該在退出 for 回圈后回傳。
def sumL(ls):
total = 0
for i in ls:
if isinstance(i, list):
total = sumL(i)
else:
total = i
return total
注意* 不要input用作引數,因為它是函式的名稱
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/451575.html
上一篇:將控制臺輸出列印到文本檔案
