我是Python的新手,也许我的问题很简单。
我创建了一个250个零的列表,称为 x ,x = np.zeros(250)
,并且有一个循环,我在其中进行一些计算,例如,在每次迭代中,我都会产生两个x。在名为temp_x的列表中迭代x [0]和x [1]等。即第一个temp_x具有x [0]和x [1]
我想将每次迭代结束时的输出保存到x的相应位置。例如,在第一次迭代结束时,temp_x有两个值,我想将它们分配给x的第一个位置。
我做错了什么?
x[i, i+1] = x_temp
答案 0 :(得分:1)
这应该很好
x[i] = x[i+1] = x_temp
答案 1 :(得分:1)
如@IAmVisco的答案中所述,链式分配将起作用。
但是,要弄清楚您的代码没有的原因:
当您键入类似x[i, i+1]
的内容时,Python会将方括号中的值理解为tuple
,因此实际上尝试执行x[(i, i + 1)]
,该操作访问行{{ 1}}和列i
。由于没有这样的元素(i + 1
是一维数组),因此它失败并显示错误“数组索引过多”。
如果您实际上想以这种方式访问两个(或多个)元素,则索引应采用x
的形式(np.ndarray
也可以使用):
list
答案 2 :(得分:0)
我不确定IAmVisco的答案会满足要求,而是将x的两个元素都设置为列表x_temp。
我想您需要的是:
x[i], x[i+1] = x_temp
这会将x_temp
的每个元素解压缩为x
的每个元素