A
是一个列表——一个一维数组。A[0]
是一个int
,它是不可下标的。因此你的错误。
在 python 中将矩阵表示为二维列表更为自然,例如:
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 的一维性相关,您可以像这样打印它:
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)))