這是一個非常簡單的代碼來代替更大的問題,但我希望我可以解決它大塊。我將從我的第一個問題開始。遞歸函數和列表追加/擴展
def testrecurse(z,target):
x=[]
if z<target:
z*=2
x.append(z)
x.extend(testrecurse(z,target))
return x
這是一個測試函數,以幫助我的大腦與遞歸。它需要一個數字,然後顯示兩個數字的所有乘法,直到達到目標數字。所以,如果我進入:
testrecurse(1,1000)
我收到:
[2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
這是偉大的!輸出看起來很好,很乾淨。但這是我的問題,我很難在我的輸出中追加或添加第一個值。這是我想要的輸出看起來像。
[1,2, 4, 8, 16, 32, 64, 128, 256, 512, 1024]
我試圖改變
x=[] to x=[z]
但後來我收到:
[1, 2, 2, 4, 4, 8, 8, 16, 16, 32, 32, 64, 64, 128, 128, 256, 256, 512, 512, 1024, 1024]
任何幫助,將不勝感激,我是新來的遞歸,它使我的頭不疼。
嘗試在乘以2之前追加,並改變'if z
2012-03-27 20:16:11
哦,謝謝你,我沒有意識到這樣的簡單改變會解決它。 – Unknown 2012-03-27 20:22:58