打印邻接矩阵中行和列的索引

我有一个构建邻接矩阵的函数。我想提高人类的矩阵可读性,所以我决定像这样打印行索引:

http://img.mukewang.com/62e8ff140001314a08750565.jpg

现在我想以相同的方式打印列索引,但我无法正确执行此操作。我得到的最好的结果是这样的:

http://img3.mukewang.com/62e8ff1f0001337d09630597.jpg

任何想法和建议如何整齐地打印列索引?


源代码在这里。


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]

}


肥皂起泡泡
浏览 135回答 1
1回答

喵喔喔

如果您知道自己只会达到 20 个字符,那么只需将所有内容填充到 2 个字符即可:对于标题行:numbers[i] = str(numbers[i].zfill(2))对于其他行,设置为“.”或“.1”或其他看起来很整洁的内容。这似乎是最简单的方法。另一种方法是有2列标题,一个在另一个之上,第一个是十进制值,第二个是单位值。这允许您在表中保持1的宽度,这也许是您需要的。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python