擅长:python、mysql、java
<pre><code>weekly = [ sum(visitors[x:x+7]) for x in range(0, len(daily), 7)]
</code></pre>
<p>或者密度稍低:</p>
<pre><code>weekly = []
for x in range(0, len(daily), 7):
weekly.append( sum(visitors[x:x+7]) )
</code></pre>
<p>或者,使用numpy模块。</p>
<pre><code>by_week = numpy.reshape(visitors, (7, -1))
weekly = numpy.sum( by_week, axis = 1)
</code></pre>
<p>注意,这要求visitor中的元素数量是7的倍数。它还要求您安装numpy。然而,它也可能比其他方法更有效。</p>
<p>或itertools代码奖励:</p>
<pre><code>def grouper(n, iterable, fillvalue=None):
"grouper(3, 'ABCDEFG', 'x') --> ABC DEF Gxx"
args = [iter(iterable)] * n
return itertools.izip_longest(fillvalue=fillvalue, *args)
weekly = map(sum, grouper(7, visitors, 0))
</code></pre>