计算数组时出现“列表分配索引超出范围”错误
Posted
技术标签:
【中文标题】计算数组时出现“列表分配索引超出范围”错误【英文标题】:"list assignment index out of range" error when computing array 【发布时间】:2017-06-28 06:30:33 【问题描述】:正如您在下面看到的,有一个数组数组可以保存图像的角点。我想用这个数组来计算每一边的长度。
这是我的代码:
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(最近调用 最后)在() 4 i=0; 5 对于 imageDrawPoints 中的 imageDrawPoints : ----> 6 imageSumPoints[i] = imageDrawPoints[i] + imageDrawPoints[i+1] 7 我=我+1 8 打印图像SumPoints
IndexError: 列表赋值索引超出范围
【问题讨论】:
imageDrawPoints = [] imageDrawPoints.append(imageShowConers) 打印 imageDrawPoints [array([[[ 324.50048828, 325.00543213]], [[ 433.49432373, 325.00195312]], [[ 324.49883681, [324.49880931], [324.498810931] 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]]], dtype=float32)] 欢迎来到Stack Overflow,你应该edit你的帖子包含你的数据而不是粘贴在评论中。 @하이둘기 每个角和角的长度?你的意思是两个角之间的距离?还是边长? @Mohammed Shareef C 我想知道两边的距离。 @senjuti 不要突出显示不是带有代码标记的代码的随机单词(例如“数组数组”)。 【参考方案1】:"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
【讨论】:
你好 Ed Baker。如果我必须解决这个问题,我需要改变什么? 我添加了一个代码示例,如果您满意,请将问题标记为已回答以上是关于计算数组时出现“列表分配索引超出范围”错误的主要内容,如果未能解决你的问题,请参考以下文章
遇到和错误:尝试使用带有 LibSVM 的预计算内核时出现“错误的输入格式:sample_serial_number 超出范围”