我有一個錯誤在我試圖添加到列表中數字序列遞歸。例如。如果輸入是[5,3,9],我[5 + 1,3 + 2,9 + 3]和輸出[6,5,12]。我想這樣做遞歸,所以我做的方式正在經歷並加入一個爲下面的列表中的小部分:Python列表遞歸改變
def add_position_recur(lst, number_from=0):
length = len(lst)
# base case
if (length <= 1):
lst = [x+1 for x in lst]
print "last is", lst
else:
lst = [x+1 for x in lst]
print "current list is", lst
add_position_recur(lst[1:], number_from)
return lst
,但問題是,這一切確實是將1添加到列表的每個元素。錯誤在哪裏?這與我在基本情況下返回列表的方式有關嗎?
是'用來做什麼的number_from'?它在你的代碼中沒有任何用處。並且請注意,當您執行'lst = ...'時,您正在更改'lst'以引用新列表。它不改變傳入的原始列表作爲參數 – user2718281