簡體   English   中英

編輯列表列表python3

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM