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