Python 用标记打印矩阵
我用Python定义了一个矩阵,如下所示:Python 用标记打印矩阵,python,printing,matrix,Python,Printing,Matrix,我用Python定义了一个矩阵,如下所示: matrix = [['A']*4 for i in range(4)] 如何按以下格式打印: 0 1 2 3 0 A A A A 1 A A A A 2 A A A A 3 A A A A 我想你会发现如何打印出第一行:)类似这样的内容: >>> matrix = [['A'] * 4 for i in range(4)] >>> def solve(mat):
matrix = [['A']*4 for i in range(4)]
如何按以下格式打印:
0 1 2 3
0 A A A A
1 A A A A
2 A A A A
3 A A A A
我想你会发现如何打印出第一行:)类似这样的内容:
>>> matrix = [['A'] * 4 for i in range(4)]
>>> def solve(mat):
print " ", " ".join([str(x) for x in xrange(len(mat))])
for i, x in enumerate(mat):
print i, " ".join(x) # or " ".join([str(y) for y in x]) if elements are not string
...
>>> solve(matrix)
0 1 2 3
0 A A A A
1 A A A A
2 A A A A
3 A A A A
>>> matrix = [['A'] * 5 for i in range(5)]
>>> solve(matrix)
0 1 2 3 4
0 A A A A A
1 A A A A A
2 A A A A A
3 A A A A A
4 A A A A A
A A A A
A A A A
A A A A
A A A A
此函数与您的精确输出匹配
>>> def printMatrix(testMatrix):
print ' ',
for i in range(len(testMatrix[1])): # Make it work with non square matrices.
print i,
print
for i, element in enumerate(testMatrix):
print i, ' '.join(element)
>>> matrix = [['A']*4 for i in range(4)]
>>> printMatrix(matrix)
0 1 2 3
0 A A A A
1 A A A A
2 A A A A
3 A A A A
>>> matrix = [['A']*6 for i in range(4)]
>>> printMatrix(matrix)
0 1 2 3 4 5
0 A A A A A A
1 A A A A A A
2 A A A A A A
3 A A A A A A
要检查单长度元素并用&
替换长度大于1的元素,可以在列表中进行检查,代码将更改如下
>>> def printMatrix2(testMatrix):
print ' ',
for i in range(len(testmatrix[1])):
print i,
print
for i, element in enumerate(testMatrix):
print i, ' '.join([elem if len(elem) == 1 else '&' for elem in element])
>>> matrix = [['A']*6 for i in range(4)]
>>> matrix[1][1] = 'AB'
>>> printMatrix(matrix)
0 1 2 3 4 5
0 A A A A A A
1 A AB A A A A
2 A A A A A A
3 A A A A A A
>>> printMatrix2(matrix)
0 1 2 3 4 5
0 A A A A A A
1 A & A A A A
2 A A A A A A
3 A A A A A A
它将这样打印:
>>> matrix = [['A'] * 4 for i in range(4)]
>>> def solve(mat):
print " ", " ".join([str(x) for x in xrange(len(mat))])
for i, x in enumerate(mat):
print i, " ".join(x) # or " ".join([str(y) for y in x]) if elements are not string
...
>>> solve(matrix)
0 1 2 3
0 A A A A
1 A A A A
2 A A A A
3 A A A A
>>> matrix = [['A'] * 5 for i in range(5)]
>>> solve(matrix)
0 1 2 3 4
0 A A A A A
1 A A A A A
2 A A A A A
3 A A A A A
4 A A A A A
A A A A
A A A A
A A A A
A A A A
作业至少尝试一下,并发布您目前的进度。您的代码生成一个4x4矩阵,而您给出了一个3x3矩阵的示例。@Sukritkalla您当然是对的:)我编辑了原始帖子谢谢,我不知道!你可以推广所有矩阵。另外,看起来OP改变了他想要打印的设计。谢谢!如果我想在写入前检查每个单元格内容,那么第二个for循环将如何更改?假设在某个单元格中,我有多个字母,我想打印一些特殊字符。如果我正确理解了你的问题,你的意思是,例如,你有一个
a
矩阵,其中AB
位于(1,1)
位置,并且想打印&
来代替AB
,而不是打印AB
。请参阅编辑后的答案,了解这样的代码。小补丁->在函数签名处将testMatrix更改为testMatrix。