问题描述
所以我试图用 Python 解决 N 个皇后问题,我在我的解决方案类中使用以下语句生成了我的棋盘:
self.board = [[0] * self.dimension] * self.dimension
其中 dimension 被初始化为定义皇后数量的值,从而定义棋盘的大小
在获得可能位置的列表(元组列表,保存在类变量 queen_positions 中,其中每个元组在棋盘上都有一个位置)后,我尝试使用以下方法打印解决方案:
def print_board(self):
"""
Prints the board
"""
for i,j in self.queen_positions:
self.board[i][j] = 'Q'
print(self.board)
令我震惊的是,它没有更新索引指定的特定坐标,而是更新了其他坐标。例如,对于位置 (0,1),更新后,我的板子看起来像这样:
[[0,'Q',0],[0,0]]
我注意到,如果我一开始没有生成板,而是将其硬编码为 4x4 列表,则不会发生这种情况。
来自空闲
board = [[0,[1,1,1],[2,2,2],[3,3,3]]
for i,j in [(1,1),(2,2)]:
print(f"i is ${i} and j is ${j}")
board[i][j] = 'Q'
>>> board
[[0,3]]
我在这里遗漏了什么?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)