查看: 2128|回复: 4

IndexError: list assignment index is out of range

[复制链接]

10

主题

72

帖子

180

积分

注册会员

Rank: 2

积分
180
发表于 2018-9-18 16:08:27 | 显示全部楼层 |阅读模式
请考虑以下代码:
  1. i = [1, 2, 3, 5, 8, 13]
  2. j = []
  3. k = 0

  4. for l in i:
  5.     j[k] = l
  6.     k += 1

  7. print j
复制代码

输出(Win 7 32位上的Python 2.6.6)是:
  1. > Traceback (most recent call last):
  2. >     j[k] = l IndexError: list assignment index out of range
复制代码

我不明白。有人知道如何清理它吗?
回复

使用道具 举报

11

主题

80

帖子

199

积分

注册会员

Rank: 2

积分
199
发表于 2018-9-18 16:09:14 | 显示全部楼层
j是一个空列表,但是那你尝试[0]在第一次迭代中写入元素,该迭代尚不存在。
请尝试以下方法,将新元素添加到列表末尾:
  1. for l in i:
  2.     j.append(l)
复制代码

回复

使用道具 举报

9

主题

74

帖子

185

积分

注册会员

Rank: 2

积分
185
发表于 2018-9-18 16:11:33 | 显示全部楼层
你的另一个选择是初始化j:
j = [None]*max(i)
回复

使用道具 举报

11

主题

63

帖子

159

积分

注册会员

Rank: 2

积分
159
发表于 2018-9-18 16:12:03 | 显示全部楼层
做j.append(l)而不是j[k] = l避免k。
回复

使用道具 举报

15

主题

97

帖子

310

积分

论坛管理

Rank: 4

积分
310
发表于 2018-10-10 08:09:52 | 显示全部楼层
学到了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

快速回复 返回顶部 返回列表