擅长:python、mysql、java
<p>这个怎么样:</p>
<pre><code>for i, value in enumerate(n[:-1]):
print(np.pi * (n[i + 1] ** 2) - np.pi * (value ** 2))
</code></pre>
<p>对我来说,它印着:</p>
<pre><code>0.157079632679
0.219911485751
0.628318530718
2.0106192983
</code></pre>
<p>也许你想要这个:</p>
<pre><code>>>> values = [np.pi * (n[i + 1] ** 2) - np.pi * (value ** 2)
for i, value in enumerate(n[:-1])]
>>> values
[0.15707963267948971, 0.2199114857512855, 0.62831853071795885, 2.0106192982974673]
</code></pre>
<p>让我们来解释一下:</p>
<ul>
<li>我们必须获取列表中除最后一个元素以外的所有元素,因为<code>n[i + 1]</code>对最后一项失败,所以我们使用<code>n[0:-1]</code>(如果切片的开头为0,则允许省略它;如果切片的结尾等于或大于<code>len(n)</code>,则允许省略它)。你知道吗</li>
<li><code>enumerate(a_list)</code>返回类似于表<br/>
<code>[(0, a_list[0]), (1, a_list[1]), ..., (n, a_list[n)]</code></li>
<li><code>for i, value in ...</code>将每一对解压成名为<code>i</code>和<code>value</code>的变量</li>
<li><code>[something for something in a_list]</code>返回一个新列表。您可以进行计算,并过滤这些值。例如,如果您想要一个偶数整数的平方的列表小于10:<br/>
<code>>>> [x * x for x in range(10) if x % 2 == 1]</code><br/>
<code>[1, 9, 25, 49, 81]</code></li>
</ul>