如何在列表中找到数字的累积和?

如何在列表中找到数字的累积和?

time_interval = [4, 6, 12]

我想总结一下这些数字[4, 4+6, 4+6+12]为了得到名单t = [4, 10, 22].

我尝试了以下几点:

for i in time_interval:
    t1 = time_interval[0]
    t2 = time_interval[1] + t1
    t3 = time_interval[2] + t2    print(t1, t2, t3)4 10 224 10 224 10 22


开满天机
浏览 456回答 3
3回答

婷婷同学_

如果你用这样的数组做大量的数值工作,我建议numpy,它附带一个累积和函数。cumsum:import numpy as np a = [4,6,12]np.cumsum(a)#array([4, 10, 22])对于这类事情,Numpy通常比纯python更快,与@Ashwini‘saccumu:In [136]: timeit list(accumu(range(1000)))10000 loops, best of 3: 161 us per loopIn [137]: timeit list(accumu(xrange(1000)))10000 loops,  best of 3: 147 us per loopIn [138]: timeit np.cumsum(np.arange(1000))100000 loops, best of 3: 10.1 us per loop但是,当然,如果这是唯一的地方,你将使用Numpy,它可能不值得有一个依赖它。

开心每一天1111

看:a = [4, 6, 12]reduce(lambda c, x: c + [c[-1] + x], a, [0])[1:]产出(如预期):[4, 10, 22]
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python