我目前正在学习Python(我在Matlab中有很强的背景)。我想在Python中编写一个循环,其中每次迭代都会增加数组的大小(即,我可以将新计算的值分配给变量的不同索引)。为了这个问题,我使用一个非常简单的循环来生成矢量t = [1 2 3 4 5]
。在Matlab中,编程我需要的循环会是这个样子:在循环中为数组赋值 - Python
t = [];
for i = 1:5
t(i,1) = i;
end
我已成功地实现在Python同样的事情用下面的代码:
result_t = []
for i in range(1,5):
t = i
result_t.append(t)
是否有分配更有效的方法当我们在Python中迭代时数组的值?为什么不可能做t[i,1] = i
(错误:列表索引必须是整数或切片,而不是元组)或t.append(t) = t
(错误:'int
'对象没有属性'追加')?
最后,为了简单起见,我使用了上面的例子。我知道如果我想在Python中生成vector [1 2 3 4 5]
,那我可以使用函数“np.arange(1,5,1)
”
在此先感谢您的帮助!
- >我的真正目的不是产生向量[1 2 3 4 5],而是将计算值分配给向量变量的索引。例如:
result_b = []
b = 2
for i in range(1,5):
t = i + b*t
result_b.append(t)
我为什么不能直接写t.append(t)
或使用索引(即t[i] = i + b*t
)?
您可以使用范围,因为它已经在python 2中返回列表.Xrange和python3中它返回一个仍然适合您需要的迭代 –