如何正确克隆2D阵列?

问题描述 投票:0回答:1

是python的新手,我的第一个项目是手工编写tictactoe游戏。

因此,当我尝试编写“ toString”方法时,遇到了2个维数组的问题,如下所示

board = [[0, 0, 0], [0, 0, 0], [0, 0, 0]]
binit = board[:]
for x in range(3):
    for y in range(3):
        if int(binit[x][y]) == 0:
            binit[x][y] = "_"
        elif int(binit[x][y]) == 1:
            binit[x][y] = "X"
        else:
            binit[x][y] = "O"

print(binit)
print(board)

播放时得到的输出是:

ID: board 140662640260544
ID: binit 140662640580864
board: [['X', '_', '_'], ['_', '_', '_'], ['_', '_', '_']]
binit: [['X', '_', '_'], ['_', '_', '_'], ['_', '_', '_']]

尽管董事会本身应该保持不变。

bint = board.copy()也不起作用。

python arrays multidimensional-array tic-tac-toe
1个回答
0
投票

您可以使用json进行序列化和反序列化:

import json

binit = json.loads(json.dumps(board))

0
投票

您可以使用copy.deepcopy克隆板:https://docs.python.org/2/library/copy.html

© www.soinside.com 2019 - 2024. All rights reserved.