board = []
for integer in range(1,6):
board.append("O")
print(str(board)*5)
那是我的代码。我的问题是输出不是 5x5 网格。我错过了另一个 for 循环吗?(我知道我也可以使用列表推导)。
谢谢你。
board = []
for integer in range(1,6):
board.append("O")
print(str(board)*5)
那是我的代码。我的问题是输出不是 5x5 网格。我错过了另一个 for 循环吗?(我知道我也可以使用列表推导)。
谢谢你。
如果你想要一个5x5
网格,你可以join
得到结果......
'\n'.join([' '.join(board)]*5)
例子:
>>> board = ['0']*5
>>> print '\n'.join([' '.join(board)]*5)
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
要获得您正在寻找的输出,您可以这样做
>>> board = [['0'] for _ in range(5)]
>>> board
[['0'], ['0'], ['0'], ['0'], ['0']]
>>> print '\n'.join(str(board) for _ in range(5))
[['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']]
In [22]: board = [['O'] * 5 for _ in range(5)]
In [23]: print('\n'.join(''.join(row) for row in board))
OOOOO
OOOOO
OOOOO
OOOOO
OOOOO
您缺少换行符:
print(('0'*6+'\n')*5)
您不应使用JOIN将数据打印到列中,因为当您的数据中包含可变数量的字符时,它们不会对齐。请改用字符串格式。
boardLst = [[0 for i in range(1,6)]]*5
for board in boardLst:
print " %4d"*len(board) % tuple(board), "\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
字符串格式化程序中的数字 4 表示字符之间的最小空格量。
现在,如果您创建一个具有可变长度字符的列表,如下所示,您可以打印漂亮的列:
import random
boardLst = [[random.randint(1,125) for i in range(1,5)] for _ in range(8)]
for board in boardLst:
print " %5d "*len(board) % tuple(board), "\n"
107 93 10 73
65 68 81 61
49 75 58 18
48 78 18 37
82 4 78 101
20 9 68 86
24 77 20 52
20 120 93 21