【发布时间】:2018-06-27 23:01:58
【问题描述】:
我正在定义一个维度为 n,m 的班级游戏。 init 方法创建了两个棋盘,每个玩家一个棋盘
class game:
def __init__(self, n, m):
rows = [0 for _ in range m]
self.board1 = [rows for _ in range n]
self.board2 = [rows for _ in range n]
当我为 board1[0][0] 分配一个值时,它也会为 board1[1][0]、board1[2][0]、...board1[n][0] 分配相同的值以及 board2[0-n][0]
例如,
game(3,4)
game.board1[0][0] = 1
print("board 1: {}\nboard 2: {}).format(self.board1, self.board2))
返回
board 1: [[1, 0, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0]]
board 2: [[1, 0, 0], [1, 0, 0], [1, 0, 0], [1, 0, 0]]
【问题讨论】:
-
内部维度只是指向
rows的链接,它不会被复制,而是在每次迭代中引用。它们会发生变化,因为所有列表项都引用了相同的支持对象。
标签: python oop matrix multidimensional-array