擅长:python、mysql、java
<p>注意,在您的例子中修改<code>i</code>并不会改变输入列表中的值(整数是不可变的)。你还把<em>值和它们的<em>位置混合在一起。在</p>
<p>另外,在python中,由于索引从<code>0</code>开始,所以得到的方法是错误的。在</p>
<p>在这些情况下,使用三元表达式进行简单的列表理解就可以了,使用<code>enumerate</code>来获得索引(使其从<code>1</code>开始匹配您的情况,您可以随意调整):</p>
<pre><code>[p*2 if i%2 else p for i,p in enumerate(pnr,1)]
</code></pre>
<p>(注意<code>if i%2</code>比<code>if i%2 != 0</code>短)</p>