擅长:python、mysql、java
<pre><code>from __future__ import division
from itertools import islice, tee
def moving_average(n, iterable):
# leading 0s
for i in range(1, n):
yield 0.
# actual averages
head, tail = tee(iterable)
sum_ = float(sum(islice(head, n)))
while True:
yield sum_ / n
sum_ += next(head) - next(tail)
</code></pre>
<p>当运行为</p>
^{pr2}$
<p>退货</p>
<pre><code>[0.0, 0.0, 2.0, 3.0, 4.0, 5.0, 6.0, 7.0, 8.0, 9.0]
</code></pre>
<p>(以N-1开头的0,意味着输出列表与输入列表具有相同的基数,我认为这正是您真正想要的)。在</p>