【问题标题】:IndexError: Python [duplicate]索引错误:Python [重复]
【发布时间】:2019-03-03 18:06:46
【问题描述】:

在下面的代码中,我想在矩阵中插入一些数据,我对 IndexError 感到惊讶。 我不明白为什么会出现错误,似乎一切都是正确的。

matrix=[[]]
n=int(input("number of lines and columns n= "))
for i in range(n):
   for j in range(n):
    x=int(input())
    matrix[i].insert(j,x)
    print(i,j)

编辑:

我知道我的问题与我最初的想法无关。错误是我想将 x 插入到我的 matrix 变量中不存在的列表中。解决方案是在第一个循环中添加一个新列表,然后添加所需的元素。

【问题讨论】:

  • m 的长度为 1。当您尝试访问其第二个元素时,您会收到 IndexError。
  • 也许您希望/需要在外循环的每次迭代中创建一个新的子列表 - 像这样 stackoverflow.com/a/52542948/2823755
  • m[0] 会随着对insert 的每次调用而增长; m 没有。
  • 感谢 jwebb,这就是我想要的!

标签: python


【解决方案1】:

m 是一个list of lists 这意味着您首先需要附加一个列表,然后您可以将项目附加到每个列表。

只需稍微更改您的代码即可。在外循环的每次重复中,我都会附加一个空列表。

m=[[]]
n=6
for i in range(n):
    m.append([])
    for j in range(n):
        x=5
        m[i].insert(j,x)
        print(i,j)

在这里试试: https://ideone.com/bSGIiD

这应该可以解决您的问题。

【讨论】:

    猜你喜欢
    • 2013-04-07
    • 1970-01-01
    • 2017-01-06
    • 2020-12-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-28
    • 2013-03-12
    相关资源
    最近更新 更多