【问题标题】:(Python) TypeError: list indices must be integers, not list(Python)TypeError:列表索引必须是整数,而不是列表
【发布时间】:2015-12-19 10:06:47
【问题描述】:

这是从我正在研究的数独求解器中提取的一些代码。我对其进行了一些更改以缩小它,但它的根本问题仍然存在。如果我要运行它,它会通过solve 函数一次,但在返回add1 函数的board[x][y] += 1 部分时,它会返回TypeError: list indices must be integers, not list。我找不到任何答案。无法弄清楚为什么要传递一个列表而不仅仅是数字。请帮忙!

def init_board():
    board = [[],[],[],[],[],[],[],[],[]]
    for i in board:
        for x in range(0,9):
            i.append(0)
    return board

def add1(x, y):
    board[x][y] += 1

def solve(row, column):
    add1(row, column)
    for row in board:
        print(row)
    if True:
        if row == 8 and column == 8:
            return
        if column == 8:
            row += 1
            column = 0
        if column < 8:
            column += 1
        solve(row, column)

board = init_board()

solve(0,0)

【问题讨论】:

    标签: python list recursion sudoku indices


    【解决方案1】:

    您将for row in board: 放在哪里,您将遍历board(列表列表)并将row 设置为每个内部列表。随后,当您调用solve(row, column) 时,您将传入row,它现在是一个列表。

    如果这不是您想要的,请将 for row in board: 中的 row 更改为不同的变量名,这样它就不会与您现有的 int 变量 row 发生冲突。

    【讨论】:

      猜你喜欢
      • 2018-01-03
      • 1970-01-01
      • 2018-08-09
      • 1970-01-01
      • 2014-02-19
      • 2017-05-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多