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 文件 前 14 个元素
c1
是 c
的子集,仅包含我在 row.append 上收到
IndexError: list index out of range
的 (float(row[13])/100)
有谁知道我做错了什么?
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
contains a csv file with many rows and columnsc1
is a subset of c
containing only the first 14 elements
i am getting IndexError: list index out of range
on row.append(float(row[13])/100)
does anyone know what i am doing wrong?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(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 个元素。The rows in c1 don't actually contain 14 elements, they contain 13.
The second index in a slice is non-inclusive. When you append
row[0:13]
toc1
you are appending from element 0 to the element before 13. Hence, there are only 13 elements.This is why you get
IndexError: list index out of range
onrow.append(float(row[13])/100)
.row[13]
is an attempt to access a non-existent 14th element.