(Python)TypeError:list indices必须是整数,而不是list

时间:2015-12-19 10:06:47

标签: python list recursion sudoku indices

这是从我正在处理的数独求解器中取出的一些代码。我改变了一点来缩小它,但它的根本问题仍然存在。如果我要运行它,它将通过solve函数一次,但在返回board[x][y] += 1函数的add1部分后,它将返回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)

1 个答案:

答案 0 :(得分:1)

您放置for row in board:的位置正在迭代board(列表列表)并将row设置为每个内部列表。随后当您致电solve(row, column)时,您正在传递row,现在是一个列表。

如果这不符合您的意图,请将row中的for row in board:更改为其他变量名,以免与现有的int变量row发生冲突。

相关问题