创建游戏板时出现问题:打印太多列表

Problems when creating Game Board: prints too many lists

我正在尝试使用列表创建游戏板,但是当我打印板时它打印了太多列表。

from random import randint
import pprint

class Gameboard:
    def __init__(self, rows, columns):
        self._rows = rows
        self._columns = columns
        self._board = []
        for i in range(rows):
            row = [0] * columns
            self._board.append(row)

    def drawBoard(self):
        for i in range(self._rows):
            for j in range(self._columns):
                pprint.pprint(self._board)

主程序:

from gameboard import Gameboard
import pprint

def main():
    myObject = Gameboard(7, 7)
    myObject.drawBoard()
main()

我的目标是创建一个由(在本例中)7 个列表和列表中的 7 个元素组成的板。 当我现在 运行 程序时,它会打印大约 7*49 个列表或其他内容。我必须更改什么才能只打印出一个包含 7 个列表的列表?

您可以使用内联 for 循环生成 "[]" 字符串列表,然后根据需要多次迭代该打印函数,如下所示:

import pprint

for i in range(7):
    pprint.pprint(["[]" for j in range(7)])

通过在列表中使用 .join(),您还可以将列表中的每个元素连接成一个长字符串,这样看起来更好。

import pprint

for i in range(7):
    pprint.pprint(' '.join(["[]" for j in range(7)]))

保持简单:

def drawBoard(self):
    print(*self._board, sep='\n')

输出

[0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0]
[0, 0, 0, 0, 0, 0, 0]