首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >编辑列表python3的列表

编辑列表python3的列表
EN

Stack Overflow用户
提问于 2011-08-07 10:35:42
回答 1查看 361关注 0票数 0

我有以下代码

代码语言:javascript
复制
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')

这张照片

代码语言:javascript
复制
c _  _ 

c _  _  

c _  _

而不是

代码语言:javascript
复制
c _  _ 

_ _  _  

_ _  _

我看不出哪里出了问题。另外,有没有一种更简单的方法来动态创建列表列表?

谢谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-08-07 10:39:44

您正在使用相同的list对象创建llist,并且重复多次。如果您希望llist中的每个列表都是一个单独的、独立的对象(这样当您修改内容时,只有一个列表被更改),那么您需要向每个列表追加一个不同的副本。做到这一点的最简单的方法是改变:

代码语言:javascript
复制
self._llist.append(self._list)

代码语言:javascript
复制
self._llist.append(list(self._list))

更简单的代码应该是:

代码语言:javascript
复制
self._list = ['_ '] * self._size
self._llist = [list(self._list) for i in range(self._size)]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/6970364

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档