擅长:python、mysql、java
<p>为了保留dict解决方案并避免第一个切片出现问题,可以执行以下操作。在</p>
<p>你的台词:</p>
<pre><code>avg10 = np.average(data[:-10]['value'])
</code></pre>
<p>应该是:</p>
^{pr2}$
<p>但这将导致您的<code>mean</code>不是之前10个结果的平均值,因为没有10个以前的结果可用…<br/>
注意:我选择第一个值代表平均值本身,而第二个值代表最后10个可用值,因此<strong>只有最后一个值</strong>。所以前两个值都是平均值。这很奇怪。你可以决定用</p>
<p><code>avg10 = np.average([data[j]['value'] if j>=0 else firstAverage for j in range(i-10, i) ])</code></p>
<p>如果您决定将值本身包含在平均值的最后10个值中(即{value的dict;最后9个项目的平均值和值本身}),那么第一个项目(没有前一个项目)没有更多的例外,您可以:</p>
<pre><code>for i in range(0, 100):
value = random.randrange(100)
lasts = [data[j]['value'] for j in range(i-9, i) if j>=0]
lasts.append(value)
avg10 = np.average(lasts)
data += [{'value': value, 'avg10': avg10}]
</code></pre>
<p>在最后一种情况下,您可以更精确地编辑您的问题;)</p>