将值分配给python列表的特定位置

时间:2019-03-20 12:47:37

标签: python list numpy

我是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

3 个答案:

答案 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的每个元素