擅长:python、mysql、java
<p>如果您对这样的数组进行了大量的数值计算,我建议使用<a href="https://docs.scipy.org/doc/numpy/user/whatisnumpy.html" rel="noreferrer">^{<cd1>}</a>,它带有一个累积和函数<a href="https://docs.scipy.org/doc/numpy/reference/generated/numpy.cumsum.html" rel="noreferrer">^{<cd2>}</a>:</p>
<pre><code>import numpy as np
a = [4,6,12]
np.cumsum(a)
#array([4, 10, 22])
</code></pre>
<p>对于这种情况,Numpy通常比纯python快,请参见与<a href="https://stackoverflow.com/a/15889203/1730674">@Ashwini's ^{<cd3>}</a>的比较:</p>
<pre><code>In [136]: timeit list(accumu(range(1000)))
10000 loops, best of 3: 161 us per loop
In [137]: timeit list(accumu(xrange(1000)))
10000 loops, best of 3: 147 us per loop
In [138]: timeit np.cumsum(np.arange(1000))
100000 loops, best of 3: 10.1 us per loop
</code></pre>
<p>当然,如果这是你唯一会使用numpy的地方,那么依赖它可能是不值得的。</p>