python列表中成对求和的值

kia*_*asy -1 python for-loop list

说我有一个清单:

alist = [1, 3, -5, 4, 2, -1]
Run Code Online (Sandbox Code Playgroud)

您如何通过向列表中添加下一个值来更改列表中的每个值?因此,例如,第一个值变为4,第二个值变为-2,依此类推...

我正在考虑使用for number in alist: number = number + # what next?

我该怎么办?

ins*_*get 5

首先,您拥有的是一个元组,而不是一个列表。元组是不可变的,这意味着您无法重新分配其元素

这是一种无需更改原始列表即可创建新列表的方法:

>>> alist
[1, 3, -5, 4, 2, -1]
>>> [i+j for i,j in zip(alist, alist[1:])]
[4, -2, -1, 6, 1]
Run Code Online (Sandbox Code Playgroud)

请注意,您最终减少了一个元素,因为不考虑列表中的最后一个元素

这是一种通过更改原始文件(没有创建新列表)的方法:

for i in range(len(alist)-1):
    alist[i] += alist[i+1]
Run Code Online (Sandbox Code Playgroud)

请注意,列表中的最后一个元素保持不变。

  • @Julio:是的。但是在某种程度上,这确实是无能为力的,因为这个问题未明确说明 (2认同)