python: 列表索引超出范围
for row in c:
c1.append(row[0:13])
for row in c1:
row.append(float(row[13])/100)
row.append(float(row[12])/float(row[13])/100)
row.append(math.log10(float(row[12])))
c
是一个包含很多行和列的csv文件。
c1
是从 c
中提取的一个子集,只包含前14个元素。
我在执行 row.append(float(row[13])/100)
时遇到了 IndexError: list index out of range
的错误。
有没有人知道我哪里出错了?
1 个回答
1
c1中的行其实并不包含14个元素,而是包含13个。
在切片操作中,第二个索引是不包括的。也就是说,当你用 row[0:13]
添加到 c1
时,你实际上是从第0个元素添加到第13个元素的前一个元素。因此,实际上只有13个元素。
这就是为什么你会在 row.append(float(row[13])/100)
这行代码上遇到 IndexError: list index out of range
的原因。因为 row[13]
是在尝试访问一个不存在的第14个元素。