2017-10-18 26 views
0

私はリストを使ってゲームボードを作成しようとしていますが、ボードを印刷するとあまりにも多くのリストを印刷します。ゲームボードを作成するときの問題:あまりにも多くのリストを印刷します

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リスト内の1つのリストのみを印刷するには、何を変更する必要がありますか?

あなたは以下のように、あなたが必要しかし、何度も "[]"文字列のリストを生成し、その印刷機能を反復するforループをインラインで使用することができ
+0

はこのpython2または3でありますか? – BurnsBA

+0

あなたのdrawBoardは '_rows * _columns'を繰り返して' _rows'行数(列の)を表示します – BurnsBA

+0

@BurnsBAそれはPython 3です –

答えて

0

:リストに.join()を使用することにより

import pprint 

for i in range(7): 
    pprint.pprint(["[]" for j in range(7)]) 

リスト内のすべての要素を1つの長い文字列に連結することもできます。

import pprint 

for i in range(7): 
    pprint.pprint(' '.join(["[]" for j in range(7)])) 
+0

@danny_blueこれはあなたが持っていた問題を解決しますか?それとも、7リストが1リストになる必要がありますか? –

+0

私はこれが承認されると思うが、私は夜に出発しなければならなかったが、私は割り当てで働いて明日それをチェックするつもりだ –

0

それをシンプルに保つ:

def drawBoard(self): 
    print(*self._board, sep='\n') 

OUTPUT

[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] 
関連する問題