我在python中做了八个皇后。我想使用append方法将所有输出放在列表中。 然而,所有输出变得相同是非常奇怪的。 任何人都可以帮助我PLZ;)
我正在使用四个皇后测试我的程序:
board = []
solution=[]
def isConflict(x, y):
for (i, j) in board:
if x == i:
return True
if y == j:
return True
if abs(x - i) == abs(y - j):
return True
else:
return False
def solve(x,y):
for y in range(1, 5):
if isConflict(x, y)==False:
board.append((x, y))
solve(x + 1,y)
board.remove((x,y))
if x > 4:
solution.append(board)
print(solution)
solve(1,1)
输出如下:
[[(1, 2), (2, 4), (3, 1), (4, 3)]]
[[(1, 3), (2, 1), (3, 4), (4, 2)], [(1, 3), (2, 1), (3, 4), (4, 2)]]
但我想要的是:
[[(1, 2), (2, 4), (3, 1), (4, 3)]]
[[(1, 2), (2, 4), (3, 1), (4, 3)], [(1, 3), (2, 1), (3, 4), (4, 2)]]
我该怎么办?