【问题标题】:How do I show the column and row numbers when printing a matrix?打印矩阵时如何显示列号和行号?
【发布时间】:2019-10-13 08:24:38
【问题描述】:

我试图在打印矩阵时在顶部和左侧打印行号和列号。例如,我想要这个:

test = [[7,7,7,7],[7,7,7,7],[7,7,7,7]]

显示为

     0 1 2 3
   0 7 7 7 7
   1 7 7 7 7
   2 7 7 7 7

矩阵打印很好

for x in test:
    print(*x)

我只是不知道如何正确格式化它以显示索引号。我之前在这里找到了答案,但遗憾的是,我似乎丢失了问题的 URL。

【问题讨论】:

    标签: python python-3.x


    【解决方案1】:

    您可以在遍历可迭代对象时使用 enumerate 来提供索引:

    for idx, x in enumerate(test):
        print(idx, *x)
    

    对于第一行,您可以这样做(我希望格式正确,无法测试我目前正在旅途中):

    print(" ", *range(len(test)))
    

    当您的矩阵包含可变长度的数字时,您可以查看字符串格式以将它们打印为固定宽度的字符串。这里例如: How do I make a fixed size formatted string in python?

    【讨论】:

    • 是的,这行得通。我不知道我必须采取什么措施才能使其适用于两位数,但您的解决方案完美适用于个位数。
    • 哦,很好。你是对的,当数字变成可变长度时,你需要付出额外的努力。您可以使用字符串格式来执行此操作,我链接了一个相关问题。
    • 只是想指出一个不需要列出范围就可以解压它,即print(" ", *range(len(test)))就可以了。
    【解决方案2】:

    如果可以使用pandas:

    >>> pandas.DataFrame(test)
       0  1  2  3
    0  7  7  7  7
    1  7  7  7  7
    2  7  7  7  7
    

    【讨论】:

    • 谢谢!我看到了与 Numpy 类似的东西,它也可以工作。不幸的是,我不被允许使用库。
    猜你喜欢
    • 2023-03-12
    • 2015-12-27
    • 2021-11-09
    • 2022-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多