[英](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
,现在是列表。
如果这并非您的本意,改变row
中for row in board:
在不同的变量名称,以便它不与现有的int变量冲突row
。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.