IndexError异常

时间:2018-09-30 02:31:14

标签: python list indexing

我正在学习使用Python的入门级编程课程,我正努力在我们的教科书中掌握一个概念。

# This code will cause an IndexError exception.
my_list = [10, 20, 30, 40]
index = 0
while index < 5:
    print(my_list[index])
    index += 1

这将按预期返回IndexError,但是我不知道为什么的确切原因,但是我知道在循环中将索引设置为<5会导致错误。我只需要帮助了解错误背后的逻辑,而不是解决错误的方法即可。

1 个答案:

答案 0 :(得分:0)

解决方案

  

使用索引TeamspeakBot.supportQueue.remove((Integer) clientid); 012,您已经访问了所有4个元素   列表中。没有索引3。从零开始的索引意味着最后   索引始终是长度减去1。

牢记这一点,问题在于,当只有四个值时,您期望列表中有五个值。将您的代码更改为以下内容...

4

但是,这将是“硬编码”循环,如果要修改my_list = [10, 20, 30, 40] index = 0 while index < 4: print(my_list[index]) index += 1 的长度,则必须更改循环条件。因此,建议您更改条件以测试my_list的长度。这样的事情会起作用...

my_list

其他解决方案

还有其他更有效的方法来打印列表内容。

浏览列表的内容

my_list = [10, 20, 30, 40]
index = 0
while index < len(my_list):
    print(my_list[index])
    index += 1

使用带星号的表达式(请注意,这会在同一行上打印出内容)

for value in my_list: print(value)