擅长:python、mysql、java
<p>对于第一个用例,类似于</p>
<pre><code>sum(dp.freq for dp in dp_list[:41])
</code></pre>
<p>很可能是合适的。在</p>
<p>但是,如果你想做累计和,你可以技术上把它们结合起来,因为总和就是最后的总和。例如</p>
^{pr2}$
<p>然后<code>cumsums[40]</code>是前41个<code>DataPoint</code>的频率之和。你甚至可以进一步优化上面的代码(也许用<code>try</code>/<code>else</code>替换{<cd5>}/<code>except IndexError</code>,但重要的是它的正确性。在</p>
<h2>次要考虑因素</h2>
<p>您可能需要使用一个新样式的类,因此</p>
<pre><code>class DataPoint:
</code></pre>
<p>你会的</p>
<pre><code>class DataPoint(object):
</code></pre>
<p>另外,您可以在列表切片中删除初始的0,因为<code>lst[:41]</code>与{<cd8>}在几乎所有的意图和目的上都是相同的。在</p>