こんにちは、私は2D配列a = [[1,2,1,2], [3,4,5,3], [8,9,4,3]]
を持っていて、これをテーブルのようなグリッドに印刷したいとします。これまでのところ、私が持っているコードは次のとおりです。2D配列を「きれいな」形式でプリントするには?
def printArray(a):
for row in range(len(a[0])):
for col in range (len(a[0])):
b = print("{:8.3f}".format(a[row][col]), end = " ")
print(b)
これは、それが私に与えてプリントアウトされます。
1.000 2.000 1.000 2.000 None
3.000 4.000 5.000 3.000 None
8.000 9.000 4.000 3.000 None
そしてエラー:これはなぜ
File "hw8pr2.py", line 17, in printArray
b = print("{:8.3f}".format(a[row][col]), end = " ")
IndexError: list index out of range
誰かが教えてもらえますハプニング?私は、各行の最後に「None」も望んでいません。私は出力にそれをしたい:
def printArray(a):
for row in range(len(a[0])):
for col in range (len(a[0])):
b = print("{:8.3f}".format(a[row][col]), end = " ")
print(b)
をあなたがlen(a[0])
でループのための2つを使用しているが、あなたの入力データが正方形ではないので、それができない:ここでは
1.000 2.000 1.000 2.000
3.000 4.000 5.000 3.000
8.000 9.000 4.000 3.000
物を印刷するために変数を宣言する必要はありません。変数bのforループが終了すると、変数bは実際には何も持たないので、noneを返します。最後の行を削除します。 – JackTheCrab
列と行の両方に 'len(a [0])'を使用しています。あなたがsqare行列を持っていればうまくいくでしょうが、これはあなたが与えた例の場合ではありません。 –
かわいいテーブルを印刷するために、Pythonには[prettytable]という名前の巧みな名前のモジュールがあります(https://pypi.python.org/pypi/PTable/0.9.2)。 – Efferalgan