IndexError:列表赋值索引超出数组的范围

时间:2013-09-24 07:35:49

标签: python python-2.7

我是python的新手。我认为n从0开始,它将增加到stack1上的最后一个元素。

arraylength = 3*stack1length
array = [0]*arraylength
for n in stack1:
    array[3*n] = stack1[n]

我的数组长度是stack1长度的3倍

1 个答案:

答案 0 :(得分:9)

for n in stack1:

浏览stack1中的

您似乎想要浏览索引:

for n in range(len(stack1)):
    array[3*n] = stack1[n]

请注意,使用便捷功能enumerate

可以更好地编写
for n, stack1_n in enumerate(stack1):
    array[3*n] = stack1_n

另外,你可以使用一些邪恶的hackz:

array[::3] = stack1

array[::3]arraystart:stop:step)中的每三个项目,因此您将每个第三项设置为stack1中的相应项目。