我试图为一个学校项目进行单词搜索并遇到麻烦。我正在使用一个具有该功能的类。这是我的代码:
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])
而不是打印出预期的('' =无)
A
''
打印出来
A
A
我做错了什么?
答案 0 :(得分:3)
这将创建对同一列表的引用列表
self.board = [['']*size]*size
您需要为每个条目创建一个新列表
self.board = [['']*size for x in range(size)]
将不可变对象乘以这样的列表是安全的。例如
['']*size
[0]*size
由于您被迫替换条目而不是修改它们