Я пишу эвристическую функцию для задачи, которая может быть представлена в виде таблицы (кортежа кортежей), и я начинаю с некоторых случайных ячеек в моей таблице, которым я даю значение 0, затем добавляю 1 к ее соседей и т. д. - это значение позже может быть показано в словаре - где ключ - это координаты ячейки, а значение - ее значение. каждый раз, когда я попадаю в новую камеру, я сохраняю ее в свой диктофон.
Проблема - для этого метода BFS, который я сделал, мне нужен словарь динамического размера. Есть несколько начальных ключей, когда я начинаю итерацию, затем добавляются другие, когда код выполняется - и код должен также проверять эти новые ячейки. Хотя я думал, что Python сможет справиться с этим, я получил ошибку во время выполнения, которая говорит: «RuntimeError: словарь изменил размер во время итерации»
visitedCells = dict()
for row in range(len(node.state)):
for cell in range(len(node.state[0])):
if STATEMENT:
visitedCells[row, cell] = 0
for cell, val in visitedCells.items():
row = cell[0]
col = cell[1]
if STATEMENT:
visitedCells[row + 1, col] = val + 1
if STATEMENT:
visitedCells[row - 1, col] = val + 1
if STATEMENT:
visitedCells[row, col + 1] = val + 1
if STATEMENT:
visitedCells[row, col - 1] = val + 1
Я ожидаю, что он действительно изменит размер и продолжит работу во время итерации. Есть ли способ сделать это?