有一个随机列表:
[8, 5, 2, 5, 2]。
根据问题的条件,需要获得一个新列表,在原列表的每对元素之间插入一个新元素,该元素等于相邻元素值的总和:
[8, 13, 5, 7, 2, 7, 5, 7, 2]
该代码必须使用 insert 方法来实现。我尝试以下选项,但没有成功:
from random import*
seed(35)
n=[randint(0,9) for i in range(5)]
print(n)
for i in range(len(n)):
n.insert(i+1,n[i]+n[i+1])
print(n)
如果有提示,我将不胜感激
原则上,纠正代码中的一行(循环本身)就足够了:
但这是一种 hack,它在我的 Python 版本中有效,但在其他版本中可能不起作用,最好
while通过手动检查循环结束和手动索引移位来重写它。有什么意义?当向列表中插入元素时,整个剩余列表都会向右移动,因此您需要将索引添加不是1,而是2。但除此之外,迭代会丢失,因此您必须设置另一个循环结束边界,提前正确计算。一切都
while做得更加可靠和正确。这个问题是用斯坦尼斯拉夫·沃洛达尔斯基方法解决的。非常感谢。