0
board = []
for integer in range(1,6):
    board.append("O")
print(str(board)*5)

それが私のコードです。私の問題は、出力が5x5グリッドとして出力されないことです。別のforループがありませんか?(私はおそらくリスト内包も使用できることを知っています)。

ありがとうございました。

4

4 に答える 4

2

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']]
于 2013-01-24T19:01:10.130 に答える
1
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
于 2013-01-24T19:00:46.630 に答える
1

改行がありません:

 print(('0'*6+'\n')*5)
于 2013-01-24T19:03:03.703 に答える
0

データにさまざまな数の文字が含まれていると、列が整列しないため、 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
于 2013-01-24T19:56:53.710 に答える