"索引错误:列出索引超出范围"在非常简单的 3 行 Python 代码中



我是编程的新手,正在努力了解事情是如何工作的。我无法让我的程序正常地通过numpy.array进行迭代,所以我决定尝试通过列表进行一级简单迭代。但它仍然不起作用!代码如下:

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

输出为:

因此,它不采用my_list[0]指数的某些原因,并且超出了范围。你能帮我理解一下为什么吗?

不清楚你到底想做什么

for i in my_list:

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

for i in my_list:
print(i)

想想看:例如,如果列表中的第三个成员是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)

最新更新