Это код, полученный из решателя Sudoku, над которым я работаю. Я немного изменил его, чтобы уменьшить его, но основная проблема этого все еще существует. Если бы я запускал это, он бы прошел через функцию solve
один раз, но затем, вернувшись в board[x][y] += 1
часть функции add1
, он возвращает TypeError: list indices must be integers, not list
. Я не могу найти ответы. Невозможно понять, почему список передается вместо простых чисел. Пожалуйста помоги!(Python) TypeError: индексы списка должны быть целыми числами, а не списком
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)