我有一个列表作为它的条目列表(例如,array =([1,2],[2,3],[3,4])),我想循环这些列表和比较一个特定的项目,看它是否符合标准,但我一直收到这个错误:" Indexerror:列表索引超出范围"
这是我的代码:
for i in enumerate(arr):
if arr([i][6]) == 0.0:
humans= humans+[arr[i,col]]
我已经通过打印数组[1] [6]检查了实际数组,我知道有一个值存在的事实。那么为什么它不会循环呢?
答案 0 :(得分:1)
您对enumerate()
的理解是错误的。它返回元组列表,每个项映射到其索引。以下是您在案例中返回的值:
>>> list(enumerate(arr))
[(0, [1, 2]), (1, [2, 3]), (2, [3, 4])]
如果要进行迭代以使i
的值从0到arr
的长度,则需要使用range()
作为:
for i in range(len(arr))
您的列表内容也是:
arr = [[1,2],[2,3],[3,4]]
这是一个3X2列表,你正在做arr[i][6]
,它会给出IndexError,因为每个子列表的长度只有两个