1
我有一個遞歸函數,試圖找到添加到特定數字的數字的組合。我結果存儲在一個名爲列表validCombinations
Python - 列表元素以某種方式被覆蓋
代碼:
sum = 4
digits = 2
currentDigit = digits
validCombinations = []
#recursion function to find combinations of numbers that add to the sum variable
def recursive(index):
if 10 not in digitList:
if index >= 0:
total = 0
for n in digitList:
total += n
if total == sum:
validCombinations.append(digitList)
digitList[index] += 1
recursive(index-1)
else:
recursive(currentDigit-1)
digitList = []
for n in range(digits,0,-1):
for i in range(n):
digitList.append(0)
recursive(n-1)
digitList = []
currentDigit -= 1
print validCombinations
運行此其輸出
[[9, 10], [10, 0]]
當我希望看到這個
[[2, 2], [4]]
我有通過代碼,它似乎是以某種方式覆蓋列表中的元素,h無論如何,在我的代碼中,我只使用append()
方法與validCombinations
進行交互,該方法應該將其添加到最後。
我錯過了一些東西,或者是造成這種情況的遞歸嗎?
是'數字'應該是應該測試的數字的下限? – BenjaminGolder
看看這裏發生了什麼:https://gist.github.com/anonymous/7cbd68961bc0b577a15f – BenjaminGolder
我們不期待[1,3]作爲4的有效分解? –