[英]editing a list of lists python3
我有以下代碼
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 _ _
_ _ _
_ _ _
我看不到出了什么問題。 另外,有沒有更簡單的方法來動態創建列表列表?
謝謝!
您正在使用相同的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)]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.