2014-12-02 81 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