A
リスト、つまり 1 次元配列です。A[0]
はint
添字付けできない です。したがって、あなたのエラー。
Python では、行列を 2 次元リストとして表現する方がより自然です。たとえば、次のようになります。
A = [[22, 38], [30, 58], [34, 69]]
また
A = [[22, 30, 34], [38, 58, 69]]
これを行うと、コードは機能しますが、次のようなコードを使用する方が良いでしょう:
def print_matrix(M):
for N in M:
print("|{}|".format('\t'.join(str(O) for O in N)))
print_matrix(A)
または単に:
from pprint import pprint
pprint(A)
A の 1 次元性に縛られている場合は、次のように出力できます。
def print_list_matrix(M, width):
for i, j in zip(range(0, len(M), width), range(skip, len(M)+width, width)):
print('|{}|'.format("\t".join(str(O) for O in M[i:j])))
またはこのように:
def print_list_matrix(M, width):
for i in range(0, len(M), width):
print('|{}|'.format("\t".join(str(O) for O in M[i:i+width])))
または、スライスを避けたい場合:
from itertools import izip
def grouper(seq, size):
iters = [iter(seq)] * size
return izip(*iters)
def print_list_matrix(M, width):
for N in grouper(M, width):
print('|{}|'.format("\t".join(str(O) for O in N)))