Python在列表中将字符串链接在一起

8 浏览
0 Comments

Python在列表中将字符串链接在一起

我正在尝试为学校项目制作一个单词搜索游戏,但遇到了问题。我正在使用一个带有棋盘函数的类。这是我的代码:

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
0 Comments

Python中连接字符串列表的问题源于创建一个对同一列表的引用。解决方法是为每个条目创建一个新列表。只有对不可变对象进行列表乘法才是安全的。由于你被迫替换条目而不是修改它们,所以出现了这个问题。可以使用以下代码来解决这个问题:

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

这样可以确保每个条目都有自己的列表,并且可以安全地连接字符串。

0