我试着写了一些代码:
i = [1, 2, 3, 5, 8, 13]
j = []
k = 0
for l in i:
j[k] = l
k += 1
但是我得到一条错误消息,说IndexError: list赋值索引超出范围,指向代码的j[k] = l行。为什么会出现这种情况?我该怎么解决呢?
我试着写了一些代码:
i = [1, 2, 3, 5, 8, 13]
j = []
k = 0
for l in i:
j[k] = l
k += 1
但是我得到一条错误消息,说IndexError: list赋值索引超出范围,指向代码的j[k] = l行。为什么会出现这种情况?我该怎么解决呢?
当前回答
你的另一个选择是初始化j:
j = [None] * len(i)
其他回答
还有一种方法:
j=i[0]
for k in range(1,len(i)):
j = numpy.vstack([j,i[k]])
在这种情况下,j将是一个numpy数组
你的另一个选择是初始化j:
j = [None] * len(i)
用j.append(l)代替j[k] = l,并完全避免k。
我认为Python方法insert就是你要找的:
将元素x插入位置i。 list.insert (i (x)
array = [1,2,3,4,5]
# array.insert(index, element)
array.insert(1,20)
print(array)
# prints [1,20,2,3,4,5]
对于j,可以使用字典(类似于关联数组)
i = [1, 2, 3, 5, 8, 13]
j = {} #initiate as dictionary
k = 0
for l in i:
j[k] = l
k += 1
print(j)
将打印:
{0: 1, 1: 2, 2: 3, 3: 5, 4: 8, 5: 13}