我尝试编写一些代码,例如:
i = [1, 2, 3, 5, 8, 13]
j = []
k = 0
for l in i:
j[k] = l
k += 1
但是我收到一条错误消息,上面写着 IndexError: list assignment index out of range
,指的是 j[k] = l
代码行。为什么会出现这种情况?我该如何解决?
原文由 Vladan 发布,翻译遵循 CC BY-SA 4.0 许可协议
我尝试编写一些代码,例如:
i = [1, 2, 3, 5, 8, 13]
j = []
k = 0
for l in i:
j[k] = l
k += 1
但是我收到一条错误消息,上面写着 IndexError: list assignment index out of range
,指的是 j[k] = l
代码行。为什么会出现这种情况?我该如何解决?
原文由 Vladan 发布,翻译遵循 CC BY-SA 4.0 许可协议
4 回答4.4k 阅读✓ 已解决
4 回答3.8k 阅读✓ 已解决
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
1 回答4.5k 阅读✓ 已解决
1 回答3.8k 阅读✓ 已解决
1 回答2.8k 阅读✓ 已解决
j
是一个空列表,但您正在尝试写入元素[0]
在第一次迭代中,该元素尚不存在。请尝试以下操作,将新元素添加到列表末尾:
当然,如果您只想复制现有列表,那么您在实践中永远不会这样做。你只需这样做:
或者,如果您想像使用其他语言中的数组一样使用 Python 列表,那么您可以预先创建一个列表,并将其元素设置为空值(
None
在下面的示例中),然后,覆盖特定位置的值:要意识到的是,
list
对象不允许您为不存在的索引分配值。