1

私の質問に対する適切な答えが見つかりませんでした。2D 配列を出力する必要がありますが、各セルはサイズ 2 のリストです。このリストの最初の値は、非表示または表示を表す 'H' または 'S' です。2 番目は実際の値です。次のように各行を印刷する必要があります: format: ("%-2s %-2s... %-2s"), 何を印刷するか: 最初の値が 'H' の場合は 'H' を印刷し、それ以外の場合は 2 番目の値を印刷します。

このタスクを達成するのを手伝ってください、ありがとう!

私は次のコードを試していました:

    print ' ' , ''.join('%-2s ' % i for i in range(self.gameBoard.width)) 
    for i in range(self.gameBoard.height):
        print '%-2s'%i, ''.join('%-2s ' % v[1] for v in self.gameBoard.Matrix[i] if v[0] == 'S')

「i」は行番号です。

4

3 に答える 3

2

enumerate を使用して行を直接反復処理することをお勧めします

print ' ' , ''.join('%-2s ' % i for i in range(self.gameBoard.width)) 
for i, row in enumerate(self.gameBoard.Matrix):
    print '%-2s'%i, ''.join('%-2s '%(v[1] if V[0]==S else 'H') for v in row) 

フォーマットformatの代わりに使用することをお勧めします%

print ' ' , ' '.join(format(i, '2') for i in range(self.gameBoard.width)) 
for i, row in enumerate(self.gameBoard.Matrix):
    print '%-2s'%i, ' '.join(format(v[1] if V[0]==S else 'H', '2') for v in row) 
于 2013-05-28T07:32:02.870 に答える