计算数组时“列表赋值索引超出范围”错误

时间:2017-02-10 02:15:58

标签: python opencv jupyter-notebook

如下所示,有一组数组可以保存图像的角落。我想用这个数组计算每一边的长度。

这是我的代码:

imageDrawPoints = []
imageDrawPoints.append(imageShowConers)
imageSumPoints = [] 
i=0;
for imageDrawPoints in imageDrawPoints : 
    imageSumPoints[i] = imageDrawPoints[i] + imageDrawPoints[i+1]
    i=i+1
print imageSumPoints

错误:

  

IndexError Traceback(最近一次调用   最后)in()         4 i = 0;         5用于imageDrawPoints中的imageDrawPoints:   ----> 6 imageSumPoints [i] = imageDrawPoints [i] + imageDrawPoints [i + 1]         7 i = i + 1         8打印imageSumPoints

     

IndexError:列表分配索引超出范围

1 个答案:

答案 0 :(得分:0)

"imageDrawPoints[i+1]" is the problem.

如果您有一个包含5个项目的列表,它可能看起来像[0,1,2,3,4]

当你到达迭代结束时,你的代码将寻找:

imageDrawPoints[4+1] 

在您的数组中不存在并将抛出错误。

因为我不知道你的代码需要做什么(你需要弄清楚),但你需要添加一些条件来寻找数组的结尾并做一些替代方法。

类似的东西:

listExample = [0,1,2,3,4]

counter = 0
for i in listExample:

        if counter != len(listExample) -1:
        print i
        l = listExample[counter] + (listExample[counter+1])
        else:
            print "End Of Shape"

    counter+=1