我想创建一个对象来存储游戏中某些生物的位置。
元组列表列表对我来说似乎很合适。由列表列表创建的矩阵表示游戏的棋盘,它的元素是 2 个变量(“类型”,数字)的元组。例如: ('h', 3) 表示:'这里有 3 个人'。
所以这是我初始化电路板的方法:
>>>lines = 5
>>>columns = 5
>>>board= [[(0,0)]*lines]*columns
>>>pprint(board)
[[(0, 0), (0, 0), (0, 0), (0, 0), (0, 0)],
[(0, 0), (0, 0), (0, 0), (0, 0), (0, 0)],
[(0, 0), (0, 0), (0, 0), (0, 0), (0, 0)],
[(0, 0), (0, 0), (0, 0), (0, 0), (0, 0)],
[(0, 0), (0, 0), (0, 0), (0, 0), (0, 0)]]
然后我想在我的板上放一些人:
>>> board[2][2]=('h',3)
我希望董事会是:
[[(0, 0), (0, 0), (0, 0), (0, 0), (0, 0)],
[(0, 0), (0, 0), (0, 0), (0, 0), (0, 0)],
[(0, 0), (0, 0), ('h', 3), (0, 0), (0, 0)],
[(0, 0), (0, 0), (0, 0), (0, 0), (0, 0)],
[(0, 0), (0, 0), (0, 0), (0, 0), (0, 0)]]
但是,当我这样做时>>> pprint(board)
,它会返回:
[[(0, 0), (0, 0), ('h', 0), (0, 0), (0, 0)],
[(0, 0), (0, 0), ('h', 0), (0, 0), (0, 0)],
[(0, 0), (0, 0), ('h', 0), (0, 0), (0, 0)],
[(0, 0), (0, 0), ('h', 0), (0, 0), (0, 0)],
[(0, 0), (0, 0), ('h', 0), (0, 0), (0, 0)]]
我不明白为什么board
要修改所有的元素,这非常令人沮丧。我当然在这里遗漏了一些东西,感谢您的帮助。