2014-12-02 62 views
0

我查看了與此類似的其他問題,但沒有人似乎回答我的問題。我需要編寫一個返回數字列表累積和的函數。我有這個,但它似乎沒有正常工作:累計數字清單總和

numbers = [4,3,6] 

sums = [] 

def cumulativeSum(numbers): 
    for i in range(len(numbers) - 1): 
     sums.append(numbers[i] + numbers[i + 1]) 
    return sums 

print cumulativeSum(numbers)  ##[4, 7, 13] What the answers should come out to be 

回答

1

這將工作,你從來沒有訪問和數組,你需要爲了增加你先前計算並投入它的值

numbers = [4,3,6] 

sums = [] 

def cumulativeSum(numbers): 
    sums.append(numbers[0]) 
    for i in range(len(numbers) - 1): 
     if i == 0: 
      sums.append(numbers[i] + numbers[i + 1]) 
     else: 
      sums.append(numbers[i + 1] + sums[i]) 
    return sums 

print cumulativeSum(numbers) 
1
>>> numbers = [4,3,6] 
>>> result = [sum(numbers[:i]) for i in range(1, len(numbers)+1)] 
>>> result 
[4, 7, 13] 
+0

這有相同的內容從qn此重複了更好地解釋回答 - http://stackoverflow.com/questions/15889131/how-to-find-the-cumulative-sum-of - 數字在列表中/ 15889209#15889209 - 因此,我建議刪除 – 2014-12-02 01:23:45

+0

嗯,我的壞,但我自己做了,因爲lo gic使感覺。 – 2014-12-02 01:33:55

+0

在那裏,他們已經使用了發生器表達式,這在更大的列表中更好。謝謝,謝謝。 – 2014-12-02 01:37:52