关于Python 中IndexError:list assignment index out of range 错误解决

作者:迹忆客 时间:2021-01-27 19:06:01 

在 Python 中,当您尝试访问甚至不存在的列表的索引时,会引发 IndexError: list assignment index out of range。 索引是可迭代对象(如字符串、列表或数组)中值的位置。

在本文中,我们将学习如何修复 Python 中的 Index Error list assignment index out-of-range 错误。

Python IndexError:列表分配索引超出范围

让我们看一个错误的例子来理解和解决它。

代码示例:

# error program --> IndexError: list assignment index out of range
i = [7,9,8,3,7,0]  # index range (0-5)
j = [1,2,3]        # index range (0-3)
print(i,"\n",j)
print(f"\nLength of i = {len(i)}\nLength of j = {len(j)}" )
print(f"\nValue at index {1} of list i and j are {i[1]} and {j[1]}")
print(f"\nValue at index {3} of list i and j are {i[3]} and {j[3]}") # error because index 3 isn't available in list j

输出:

关于Python 中IndexError:list assignment index out of range 错误解决

上面代码中 IndexError: list assignment index out of range 背后的原因是我们试图访问索引 3 处的值,这在列表 j 中不可用。

修复 Python 中的 IndexError: list assignment index out of range

要修复此错误,我们需要调整此案例列表中可迭代对象的索引。 假设我们有两个列表,你想用列表 b 替换列表 a。

代码示例:

a = [1,2,3,4,5,6]
b = []
k = 0
for l in a:
   b[k] = l # indexError --> because the length of b is 0
   k += 1
print(f"{a}\n{a}")

输出:

IndexError: list assignment index out of range

您不能为列表 b 赋值,因为它的长度为 0,并且您试图在第 k 个索引 b[k] = I 处添加值,因此它会引发索引错误。 您可以使用 append()insert() 修复它。

修复 IndexError: list assignment index out of range 使用 append() 函数

append() 函数在列表末尾添加项目(值、字符串、对象等)。 这很有帮助,因为您不必处理索引问题。

代码示例:

a = [1,2,3,4,5,6]
b = []
k = 0
for l in a:
  # use append to add values at the end of the list
   j.append(l)
   k += 1
print(f"List a: {a}\nList b: {a}")

输出:

List a: [1, 2, 3, 4, 5, 6]
List b: [1, 2, 3, 4, 5, 6]

修复 IndexError: list assignment index out of range 使用 insert() 函数

insert() 函数可以直接将值插入到列表中的第 k 个位置。 它有两个参数,insert(index, value)。

代码示例:

a = [1, 2, 3, 5, 8, 13]
b = []
k = 0
for l in a:
   # use insert to replace list a into b
   j.insert(k, l)
   k += 1
print(f"List a: {a}\nList b: {a}")

输出:

List a: [1, 2, 3, 4, 5, 6]
List b: [1, 2, 3, 4, 5, 6]

除了上述两种解决方案之外,如果你想像对待其他语言中的普通数组一样对待 Python 列表,你可以使用 None 值预定义你的列表大小。

代码示例:

a = [1,2,3,4,5,6]
b = [None] * len(i)
print(f'Length of a: {len(a)}')
print(f'Length of b: {len(b)}')
print(f"\n{a}\n{b}")

输出:

Length of a: 6
Length of b: 6

[1, 2, 3, 4, 5, 6]
[None, None, None, None, None, None]

一旦你用虚拟值 None 定义了你的列表,你就可以相应地使用它。

来源:https://blog.csdn.net/fengqianlang/article/details/130684210

标签:Python,IndexError,错误
0
投稿

猜你喜欢

  • pandas 转换成行列表进行读取与Nan处理的方法

    2021-10-24 14:27:41
  • 如何理解及使用Python闭包

    2021-12-22 23:50:59
  • Python的形参和实参使用方式

    2021-10-02 22:08:07
  • django为Form生成的label标签添加class方式

    2022-08-13 12:01:44
  • 详解Python使用tensorflow入门指南

    2023-08-22 13:37:09
  • 利用Anaconda简单安装scrapy框架的方法

    2021-05-28 15:47:13
  • Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来

    2021-09-26 00:05:53
  • django在保存图像的同时压缩图像示例代码详解

    2021-09-21 15:42:46
  • 17个javascript自定义函数库

    2008-02-26 11:49:00
  • CentOS 6、7下mysql 5.7 详细安装教程

    2024-01-24 18:00:47
  • Python+matplotlib+numpy实现在不同平面的二维条形图

    2023-11-11 21:01:58
  • 解析如何加快mysql编译的速度

    2024-01-15 07:26:55
  • Python记录详细调用堆栈日志的方法

    2023-11-16 17:20:57
  • wxPython窗口的继承机制实例分析

    2023-03-04 15:55:47
  • node.js 中国天气预报 简单实现

    2024-05-13 10:05:44
  • asp如何定义参数?

    2010-05-16 15:20:00
  • Python中的fileinput模块的简单实用示例

    2023-06-19 01:09:27
  • Sub-Pixel Bug?!

    2010-03-24 18:09:00
  • Python中的pygal安装和绘制直方图代码分享

    2021-11-18 15:09:50
  • go语言实现二叉树的序例化与反序列化

    2024-04-26 17:27:30
  • asp之家 网络编程 m.aspxhome.com