"IndexError: list index out of range" in very simple 3 lines of Python code

"IndexError: list index out of range" in very simple 3 lines of Python code

我是编程新手,正在尝试了解事物的工作原理。 我无法让我的程序正常迭代 numpy.array,所以我决定尝试通过列表进行一级简单迭代。但是还是不行! 代码如下:

my_list = [1, 2, 3, 4, 5, 6, 7]
for i in my_list:
    print(my_list[i])

The output is:

因此,由于某种原因它没有使用 my_list[0] 索引并且超出了范围。 你能帮我理解为什么吗?

不清楚你到底想做什么。当您使用

迭代一个像列表这样的可迭代对象时
for i in my_list:

每个 i 是列表的每个成员,不是 列表成员的索引。因此,在您的情况下,如果您想打印列表中的每个成员,请使用

for i in my_list:
    print(i)

想一想:例如,如果列表的第 3 个成员是 9 会怎么样?您的代码将尝试打印不存在的 my_list[9]

如前所述,这不是您应该如何遍历列表的元素。

但如果你坚持,你的循环应该在 range(my_list) 之上,此时你正在按列表的值进行索引,并且由于长度为 7,最后一个有效索引为 6,不是 7.

您得到一个 IndexError,因为您正在遍历这些值,这意味着 i 的第一个值是 1,最后一个是 7。因为 7 是这个列表的无效索引,您得到一个 IndexError。合适的代码是:

my_list = [1, 2, 3, 4, 5, 6, 7]
for i in my_list:
    print(i)