(为了我们的目的,矩阵是一个列表列表,IE [[1,2,3],[4,5,6],[7,8,9]]。矩阵的一行是一个子列表。)
我想创建一个名为format_matrix(M)的函数,其中M是用户输入的任何矩阵。如何使用字符串格式在新行上显示矩阵的每一行?此外,每行中的每个数字都应该有一个3(数字中的字符数)空格的缓冲区。
我希望每个数字占用3个字节,包括剩下的任何空字节。所以,例如,数字" 5"是1个字节,所以应该有3个字节 - 1个字节=数字前面的2个字节的空格。 IE" __ 5"。另一个例子是53,即2个字节。 " _53&#34 ;.或234." 234"。 (这里的下划线用于表示空格。)
答案 0 :(得分:0)
def format_matrix(M):
for row in M:
row_str = ""
for n in row:
row_str += " " * (3 - len(str(n))) + str(n)
print row_str
>>> m = [[1, 2, 3], [4 ,5 ,6], [7, 8, 9], [10, 11, 12]]
>>> format_str(m)
1 2 3
4 5 6
7 8 9
10 11 12
答案 1 :(得分:0)
为什么不使用Python的字符串格式?
In [1]: lst
Out[1]: [[1, 2, 3], [4, 555, 6], [71, 8, 9]]
In [2]: for row in lst:
....: print ' '.join(['{:3d}'.format(e) for e in row])
....:
1 2 3
4 555 6
71 8 9