例如:如何更改
a = [1,2,3,4]
到此:
a = [2,2,6,4]
所以其他所有元素都加倍了吗?
答案 0 :(得分:4)
如果您想这样做,可以使用切片分配:
>>> a[::2] = [x*2 for x in a[::2]]
>>> a
[2, 2, 6, 4]
答案 1 :(得分:2)
您可以遍历其他所有索引:
for index in range(0, len(your_list), 2):
your_list[index] *= 2
您也可以使用切片分配来完成,如@mgilson所说:
your_list[::2] = [x*2 for x in your_list[::2]]
虽然这当然更简洁,但对于通过代码阅读的普通人来说,这也可能更令人困惑 - 分配到具有非默认跳过因子的切片并不是非常直观。
答案 2 :(得分:1)
还有另一种方法可以一次采取两个更直观的步骤,比如
for i in range(len(yourList)/2):
yourList[2*i] = 2*yourList[2*i]
答案 3 :(得分:1)
虽然我确实喜欢其他答案中使用的巧妙技巧,但对于所发生的事情,可能更详细,更少语言的具体解释如下:
for i in range(0, len(a)): # Iterate through the list
if i%2 == 0: # If the remainder of i ÷ 2 is equal to 0...
a[i] = a[i] * 2 # Change the current element to twice what it was