擅长:python、mysql、java
<p>这里有另一种方法,包括列表理解。在Python中,通常不必创建带有占位符的列表并逐个放置元素:</p>
<pre><code>>>> from random import randint
>>> my_list = [randint(1, 20) for _ in range(10)]
>>> my_list
[1, 20, 2, 4, 8, 12, 16, 7, 4, 14]
>>> [x * 2 if i % 2 else x / 2 for i, x in enumerate(my_list)]
[0.5, 40, 1.0, 8, 4.0, 24, 8.0, 14, 2.0, 28]
</code></pre>
<p>如果要就地修改原始列表,可以使用numpy和高级切片:</p>
<pre><code>>>> import numpy as np
>>> a = np.array([11, 13, 21, 12, 18, 2, 21, 1, 5, 9])
>>> a[::2] = a[::2] / 2
>>> a[1::2] = a[1::2] * 2
>>> a
array([ 5, 26, 10, 24, 9, 4, 10, 2, 2, 18])
</code></pre>