代码如下:
from array import *
x=[]
x.append(0.232)
print (x)
for i in range(25):
x[i+1]=(1/(i+1))-5*x[i]
我有这个错误:
x[i+1]=(1/(i+1))-5*x[i]
IndexError: list assignment index out of range
这可能会发生,因为我已将x定义为空数组。但是,如何定义数组并执行相同的操作呢?
答案 0 :(得分:0)
list
不是为高效的数学运算而设计的,因此最好使用numpy
数组进行数学运算。但是,如果您想使用列表,则可以使用
n
零初始化的列表。
x=[0]*n
x[0] = 0.232
x[1] = ....
....
请记住,使用上述方法创建的多维list
将引用数组中的相同元素!例如:
l = [0,0,0]*5
将在另一个list
内创建五个相同的list
,而不是单独的list
。所以创建像这样的多维数组是一个坏主意!
更好的方法是使用numpy使用以下代码创建数组:
from numpy import empty, zeros
x = empty(n) # or # x = zeros(n)
x[0] = 0.232
x[1] = ....
....
和
l = empty((3,5)) # or # l = zeros((3,5))
表示包含3行和5列的数组。