打印邻接矩阵中行和列的索引
Print index of row and column in adjacency matrix
我有一个建立邻接矩阵的函数。我想提高矩阵对人类的可读性,所以我决定像这样打印行索引:
现在我想用同样的方法打印列索引,但是我做不到。我得到的最好结果是:
有什么想法和建议可以整齐地打印列索引吗?
源代码here.
def generate_adjacency_matrix(vertices):
# Create empty Matrix
matrix = [['.' for _ in range(len(vertices))] for _ in range(len(vertices))]
# Fill Matrix
for row in range(len(matrix)):
for num in range(len(matrix)):
if num in vertices[row]:
matrix[row][num] = '1'
# Print column numbers
numbers = list(range(len(matrix)))
for i in range(len(numbers)):
numbers[i] = str(numbers[i])
print(' ', numbers)
#Print matrix and row numbers
for i in range(len(matrix)):
if len(str(i)) == 1:
print(str(i) + ' ', matrix[i])
else:
print(i, matrix[i])
如果重要我函数中的参数是一个字典,如下所示:
{0:[1],
1:[0,12,8],
2:[3,8,15]
....
20:[18]
}
如果你知道你只需要 20 个字符,那么只需将所有内容填充到 2 个字符即可:
对于 header 行:
numbers[i] = str(numbers[i].zfill(2))
对于其他行,设置为“.”或“.1”或其他看起来整洁的内容。
这似乎是最简单的方法。
另一种方法是有 2 列 headers,一列在另一列之上,第一个是十位值,第二个是单位值。这使您也可以在 table 中保持 1 的宽度,这可能是您需要的。
我有一个建立邻接矩阵的函数。我想提高矩阵对人类的可读性,所以我决定像这样打印行索引:
现在我想用同样的方法打印列索引,但是我做不到。我得到的最好结果是:
有什么想法和建议可以整齐地打印列索引吗?
源代码here.
def generate_adjacency_matrix(vertices):
# Create empty Matrix
matrix = [['.' for _ in range(len(vertices))] for _ in range(len(vertices))]
# Fill Matrix
for row in range(len(matrix)):
for num in range(len(matrix)):
if num in vertices[row]:
matrix[row][num] = '1'
# Print column numbers
numbers = list(range(len(matrix)))
for i in range(len(numbers)):
numbers[i] = str(numbers[i])
print(' ', numbers)
#Print matrix and row numbers
for i in range(len(matrix)):
if len(str(i)) == 1:
print(str(i) + ' ', matrix[i])
else:
print(i, matrix[i])
如果重要我函数中的参数是一个字典,如下所示:
{0:[1],
1:[0,12,8],
2:[3,8,15]
....
20:[18]
}
如果你知道你只需要 20 个字符,那么只需将所有内容填充到 2 个字符即可:
对于 header 行:
numbers[i] = str(numbers[i].zfill(2))
对于其他行,设置为“.”或“.1”或其他看起来整洁的内容。
这似乎是最简单的方法。
另一种方法是有 2 列 headers,一列在另一列之上,第一个是十位值,第二个是单位值。这使您也可以在 table 中保持 1 的宽度,这可能是您需要的。