我需要創建一個函式來計算 2d arr(矩陣)的總和,例如 [[1,1,1],[2,2,2]] 的總和將給出 9。我嘗試使用兩個函式來解決它 - 一個打電話給對方,但有一個錯誤。似乎當它到達第二個 arr 并繼續時,它會像 [[]] 那樣在 arr 中傳遞一個 arr,因此它會迭代拋出另一個 arr 而不是拋出數字。在這種情況下,我不喜歡使用庫。
這是我的代碼:
def sum_arr(arr):
s = 0
if len(arr) == 1:
s = arr[0]
else:
s = (arr[0] sum_arr(arr[1:]))
return s
def sum_mat(mtx):
sm = 0
if len(mtx) == 1:
sm = sum_arr(mtx[0])
else:
sm = sum_arr(mtx[0]) sum_arr(mtx[1:])
return sm
sum_mat([[1, 2, 3],[1,2,4],[7,8,9]])
uj5u.com熱心網友回復:
我認為您的問題是您不小心沒有遞回呼叫 sum_mat。您在 arr[0] 上呼叫 sum_arr,然后在 arr[1:] 上再次呼叫它。嘗試:
def sum_arr(arr):
s = 0
if len(arr) == 1:
s = arr[0]
else:
s = (arr[0] sum_arr(arr[1:]))
return s
def sum_mat(mtx):
sm = 0
if len(mtx) == 1:
sm = sum_arr(mtx[0])
else:
sm = sum_arr(mtx[0]) sum_mat(mtx[1:]) #changed this line here to fix repeat sum_arr call
return sm
sum_mat([[1, 2, 3],[1,2,4],[7,8,9]])
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/518599.html
標籤:Python
