0

我正在尝试为一个学校项目进行单词搜索,但遇到了障碍。我正在使用一个具有电路板功能的类。这是我的代码:

class Board:
    def __init__(self,size=20):
        self.board = [['']*size]*size
        self.board[0][0] = 'A'
        self.words = ['lorem', 'ipsum', 'dolor', 'sit', 'amet',\
                      'consectetur', 'adipiscing', 'elit', 'quisque',\
                      'in', 'augue', 'sit', 'amet', 'est', 'ullamcorper',\
                      'bibendum', 'sed', 'at', 'arcu', 'nullam']
        self.clues = self.words

board = Board()
print ''.join(board.board[0])
print ''.join(board.board[1])

而不是打印出预期的 ('' = nothing)

A
''

它打印出来

A
A

我究竟做错了什么?

4

1 回答 1

3

这将创建对同一列表的引用列表

self.board = [['']*size]*size

您需要像这样为每个条目创建一个新列表

self.board = [['']*size for x in range(size)]

只有在这样的列表中乘以不可变对象才是安全的。例如

['']*size
[0]*size

由于您被迫替换条目而不是修改它们

于 2013-05-22T12:28:30.740 回答