繁体   English   中英

(Python)TypeError:列表索引必须是整数,而不是列表

[英](Python) TypeError: list indices must be integers, not list

这是我正在开发的Sudoku求解器的一些代码。 我对其进行了一些更改以缩小它的大小,但是它的根本问题仍然存在。 如果我要运行此命令,它将执行一次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)

for row in board:放置for row in board:您要遍历board (列表列表)并将row设置到每个内部列表。 随后,当您调用solve(row, column) ,您传入的是row ,现在是列表。

如果这并非您的本意,改变rowfor row in board:在不同的变量名称,以便它不与现有的int变量冲突row

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM