我试图使用列表创建游戏板,但是当我打印电路板时,打印的列表太多了。
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个列表的列表?
答案 0 :(得分:0)
您可以使用内联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)]))
答案 1 :(得分:0)
保持简单:
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]