2017-10-15 7 views
0

私は単純な関数とそれに対する入力を書いていますが、私が望む出力のための "パス"に何を入れるべきか分かりません。ここに私のコードは次のとおりです。この所望の出力のために(Python Beginner)関数内の行列の印刷

def print_matrix(matrix_in, rows, columns, matrix): 
    pass 

    def print_header(columns): 
     line = "+" 
     for i in range(columns): 
      line += "---+" 
     print(line) 

matrix={(2, 2): 5, (1, 2): 4, (0, 1): 2, (0, 0): 1, (1, 1): 3, (2, 3): 6} 
rows=3 
columns=4 
matrix="Matrix 1" 

print_matrix(matrix, rows, columns, matrix) 

Matrix 1 

+---+---+---+---+ 
| 1| 2| 0| 0| 
+---+---+---+---+ 
| 0| 3| 4| 0| 
+---+---+---+---+ 
| 0| 0| 5| 6| 
+---+---+---+---+ 

すべてのヘルプはあなたに感謝いただければ幸いです。

+0

関連:https://でのstackoverflow .com/questions/9535954/tab-dataとしての印刷リスト –

+0

インデントを修正してください – harandk

+0

Fi最初に、行数2を必要とするため、行の外側、列のinner、 'matrix_in.get((row、col)、0)'を使用して値を取得します。 。 –

答えて

0

はこの1つを試してみてどうなるリストと辞書、わから:

def print_matrix(matrixIn, rows, columns, matrixName): 
    print(matrixName + "\n") 

    for i in range(rows): 
     print("+---" * (rows+1) + "+") 
     for j in range(columns): 
      key = (i,j) 
      value = matrixIn.get(key) 
      if value is None: 
       print("| ", 0, end="") 
      else: 
       print("| ", value, end="") 
     print("|") 
    print("+---" * (rows+1) + "+") 

matrix={(2, 2): 5, (1, 2): 4, (0, 1): 2, (0, 0): 1, (1, 1): 3, (2, 3): 6} 
rows=3 
columns=4 
matrixString="Matrix 1" 

print_matrix(matrix, rows, columns, matrixString) 

結果は次のとおりです。

Matrix 1 

+---+---+---+---+ 
| 1| 2| 0| 0| 
+---+---+---+---+ 
| 0| 3| 4| 0| 
+---+---+---+---+ 
| 0| 0| 5| 6| 
+---+---+---+---+ 
0

ない私は

def print_matrix(matrix): 
    for nr in range(len(matrix[:])): 
     print '+----------------+' 
     print '| '+' | '.join(str(i) for i in matrix[nr][:])+' |' 
    print '+----------------+' 
return 

matrix = [[1,2,0,0],[0,3,4,0],[0,0,5,6]] 
print_matrix(matrix) 
関連する問題