python:列表索引超出范围

发布于 2024-09-12 07:03:35 字数 435 浏览 2 评论 0原文

  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 个元素

c1c 的子集,仅包含我在 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 columns
c1 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 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

嘿咻 2024-09-19 07:03:35

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] to c1 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 on row.append(float(row[13])/100). row[13] is an attempt to access a non-existent 14th element.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文