【发布时间】:2020-11-22 13:02:17
【问题描述】:
我有一个像[1,3,5,6,8,7] 这样的元素列表。
我想要一个列表中两个连续元素之和的列表,最后一个元素也与列表的第一个元素相加。
我的意思是在上述情况下,我想要这个列表:
[4,8,11,14,15,8]
但是在for循环中添加最后一个元素和第一个元素时,会出现索引超出范围。 考虑以下代码:
List1 = [1,3,5,6,8,7]
List2 = [List1[i] + List1[i+1] for i in range (len(List1))]
print(List2)
【问题讨论】:
-
您希望列表中的最后一个
8是预期结果吗? -
不应该使用 len -1 或 % len 吗?
-
@Ederic Oytas,是的,它是最后一个元素和第一个元素的总和,反之亦然。
-
将
i+1更改为(i+1) % len(List1) -
@AdnanAkram - 关于 len - 1,你是对的,但模数应该会产生预期的结果(请看上面的 Steven Rumbalski 评论)