python: 列表索引超出范围

0 投票
1 回答
589 浏览
提问于 2025-04-16 02:15
  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个元素。

撰写回答