2017-02-10 69 views
0

正如您在下面看到的,有一个数组阵列可以保存图像的角点。我想用这个数组来计算每一边的长度。当计算阵列时出现“列表分配索引超出范围”错误

这是我的代码:

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 (most recent call last) in() 4 i=0; 5 for imageDrawPoints in imageDrawPoints : ----> 6 imageSumPoints[i] = imageDrawPoints[i] + imageDrawPoints[i+1] 7 i=i+1 8 print imageSumPoints

IndexError: list assignment index out of range

+0

imageDrawPoints = [] imageDrawPoints.append(imageShowConers) 打印imageDrawPoints [阵列([[[324.50048828,325.00543213], [[433.49432373,325.00195312]] [[324.49880981,432.99136353], [[216.50079346,216.98078918], [[108.50048065,325.00384521], [[2.63793683,325.0098877], [[108.49881744,216.99128723], [[216.49368286,325.01428223], [[108.50048065,325.00540161], [[324.50048828,541.00384521]]],D型细胞= FLOAT32)] –

+0

欢迎使用[所以],您应该[编辑]您的文章以包含您的数据,而不是粘贴在评论中。 – Prisoner

+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 
+0

你好Ed Baker。如果我必须解决这个问题,我需要改变什么? –

+0

我已经添加了一个代码示例,如果您满意,请将问题标记为已回答 –