首先请接受我对这个基本问题的道歉。如果是的话。我有一个真正的编码问题,但仅举例来说,我想向您展示上面的代码。我想了解为什么第一个代码的行为boardI
和board
指向相同的引用,以及如何使第一个代码仅修改boardI
?
board = []
board.append(["0"] * 10)
boardI = list(board)
boardI[0].append("1")
print board
print boardI
>>[['0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1']]
>>[['0', '0', '0', '0', '0', '0', '0', '0', '0', '0', '1']]
board = []
board.append(["0"] * 10)
boardI = list(board)
boardI.append("1")
print board
print boardI
>>[['0', '0', '0', '0', '0', '0', '0', '0', '0', '0']]
>>[['0', '0', '0', '0', '0', '0', '0', '0', '0', '0'], '1']
如果我已宣布boardI
为boardI = board
我已经做好了但是从boardI = list(board)
开始我似乎错过了一些东西