【问题标题】:IndexError: list index out of range for multidimensional listIndexError:多维列表的列表索引超出范围
【发布时间】:2017-03-08 20:36:48
【问题描述】:

我知道矩阵是空的,但我想使用多维列表并根据行和列插入一个值。我的脚本如下:

def round1(plain_text, key):
    state_matrix = list()
    count = 0
    row = 0
    column = 0
    element_no = 0
    first_time = 'Y'
    for value in plain_text:
        if element_no == 1:
            row += 1
            element_no += 1
        elif element_no == 2:
            row -= 1
            column += 1
            element_no += 1
        elif element_no == 3:
            row += 1
            element_no += 1
        else:
            element_no += 1

        state_matrix[row][column] = value

    print(state_matrix)

我收到以下错误消息:

IndexError: list index out of range for multidimensional list

谁能帮帮我。

【问题讨论】:

    标签: python-3.x


    【解决方案1】:

    有几种不同的“空”方式:

    • 所有值都是None(或其他一些“非值”占位符)
    • 根本不存在任何值——不是None,不是0,不是null,什么都没有

    在您的代码中,state_matrix 是第二种类型——其中绝对没有任何内容。这意味着您尝试使用的任何索引都是无效的。

    您需要在使用时增加列表,例如state_matrix.append(...),或者在开头创建一个空的(使用“无值”占位符)state_matrix,例如state_matrix = [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]] .. . 但是你必须知道它会变得多大。

    【讨论】:

    • state_matrix = [[0, 0, 0, 0, 0], [0, 0, 0, 0, 0], [0, 0, 0, 0, 0]] 使用这种方式我限制列表的大小。没有其他办法了吗?
    猜你喜欢
    • 1970-01-01
    • 2015-10-20
    • 1970-01-01
    • 2011-10-31
    • 2015-06-26
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多