我有以下代码
class Board:
def __init__(self, size=7):
self._size = size
self._list, self._llist =[],[]
for i in range (self._size):
self._list.append('_ ')
for j in range(self._size):
self._llist.append(self._list)
def printboard(self):
for i in range(self._size):
for j in range(self._size):
print(self._llist[i][j], end = ' ')
print('\n')
def updateboard(self,x,y,letter):
self._llist[x][y]=letter
self.printboard()
board = Board(3)
board.updateboard(0,0,'c')这张照片
c _ _
c _ _
c _ _而不是
c _ _
_ _ _
_ _ _我看不出哪里出了问题。另外,有没有一种更简单的方法来动态创建列表列表?
谢谢!
发布于 2011-08-07 10:39:44
您正在使用相同的list对象创建llist,并且重复多次。如果您希望llist中的每个列表都是一个单独的、独立的对象(这样当您修改内容时,只有一个列表被更改),那么您需要向每个列表追加一个不同的副本。做到这一点的最简单的方法是改变:
self._llist.append(self._list)至
self._llist.append(list(self._list))更简单的代码应该是:
self._list = ['_ '] * self._size
self._llist = [list(self._list) for i in range(self._size)]https://stackoverflow.com/questions/6970364
复制相似问题