如何处理 Python 列表索引超出范围的错误 您所在的位置:网站首页 摄像头数据传输超出预期时间是啥意思 如何处理 Python 列表索引超出范围的错误

如何处理 Python 列表索引超出范围的错误

2023-12-22 05:21| 来源: 网络整理| 查看: 265

原文: List Index Out of Range – Python Error [Solved]

在本文中,我们将讨论 Python 中的 IndexError: list index out of range 错误。

在本文的每个部分中,我将重点介绍导致错误的可能原因以及如何修复它。

由于以下原因,你可能会收到 IndexError: list index out of range 错误:

试图访问列表中不存在的索引在循环中使用无效索引使用 range() 函数时指定超出列表中索引的范围

在继续修复错误之前,让我们讨论一下索引在 Python 列表中是如何工作的。如果你已经知道索引的工作原理,则可以跳过下一部分。

Python 列表中的索引如何工作

Python 列表中的每个项目都可以使用其索引号进行评估。列表中的第一项的索引为零。

考虑下面的列表:

languages = ['Python', 'JavaScript', 'Java'] print(languages[1]) # JavaScript

在上面的示例中,我们有一个名为 languages 的列表。该列表包含三个项目——“Python”、“JavaScript” 和 “Java”。

为了访问第二个项目,我们使用了它的索引:languages[1]。这打印出 JavaScript。

有些初学者可能会误解这一点。他们可能会假设,因为索引是 1,所以它应该是第一项。

为了更容易理解,这里根据索引对列表中的项目进行细分:Python(第一项)=> 索引 0JavaScript(第二项)=> 索引 1Java(第三项)=> 索引 2

正如你在上面看到的,第一项的索引为 0(因为 Python 是“零索引”)。要访问列表中的项目,你可以使用它们的索引。

如果你尝试在 Python 列表中使用超出范围的索引会发生什么

如果你尝试使用超出范围的索引访问列表中的项目,你将收到 IndexError: list index out of range 错误。

这是一个例子:

languages = ['Python', 'JavaScript', 'Java'] print(languages[3]) # IndexError: list index out of range

在上面的示例中,我们尝试使用其索引访问第四个项目:languages[3]。我们得到了 IndexError: list index out of range 错误,因为列表没有第四项——它只有三项。

简单的解决方法是在尝试访问列表中的项目时始终使用列表中存在的索引。

如何修复 Python 循环中的 IndexError: list index out of range 错误

循环在条件下工作。因此,在满足某个条件之前,它们将继续运行。

在下面的示例中,我们将尝试使用 while 循环打印列表中的所有项目。

languages = ['Python', 'JavaScript', 'Java'] i = 0 while i Java

当 i 为 3 => 在列表中找不到索引时,抛出 IndexError: list index out of range 错误。

所以当 i 等于 3 时会抛出错误,因为列表中没有索引为 3 的项目。

为了解决这个问题,我们可以通过删除等号来修改循环的条件。一旦到达最后一个索引,这将停止循环。

就是这样:

languages = ['Python', 'JavaScript', 'Java'] i = 0 while i < len(languages): print(languages[i]) i += 1 # Python # JavaScript # Java

现在的条件如下所示:while i < 3。

循环将在 2 处停止,因为条件不允许它等于 len() 函数返回的值。

如何修复在 Python 中使用 range() 函数时出现的 IndexError: list index out of range 错误

默认情况下,range() 函数返回从零开始的指定数字的“范围”。

下面是使用 range() 函数的示例:

for num in range(5): print(num) # 0 # 1 # 2 # 3 # 4

正如你在上面的示例中看到的,range(5) 返回 0、1、2、3、4。

你可以使用带有循环的 range() 函数来打印列表中的项目。

第一个示例将显示一个引发 IndexError: list index out of range 错误的代码块。在指出错误发生的原因后,我们将对其进行修复。

languages = ['Python', 'JavaScript', 'Java'] for language in range(4): print(languages[language]) # Python # JavaScript # Java # Traceback (most recent call last): # File "", line 5, in # IndexError: list index out of range

上面的示例打印列表中的所有项目以及 IndexError: list index out of range 错误。

我们收到错误是因为 range(4) 返回 0、1、2、3。我们的列表没有值为 3 的索引。

要解决此问题,你可以修改 range() 函数中的参数。更好的解决方案是使用列表的长度作为 range() 函数的参数。

即:

languages = ['Python', 'JavaScript', 'Java'] for language in range(len(languages)): print(languages[language]) # Python # JavaScript # Java

上面的代码运行没有任何错误,因为 len() 函数返回 3。将它与 range(3) 一起使用会返回 0、1、2,这与列表中的项目数相匹配。

小结

在本文中,我们讨论了 Python 中的 IndexError: list index out of range 错误。

当我们尝试使用列表中不存在的索引访问列表中的项目时,通常会发生此错误。

我们看到了一些示例,这些示例显示了在使用循环、len() 函数和 range() 函数时我们可能会遇到错误。

我们还看到了如何修复 IndexError: list index out of range 错误。

祝你编程愉快!



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有