2016-09-27 45 views
0

在这里提出的问题的解决方案printing a two dimensional array in python我无法弄清楚解决方案的{:4}部分究竟意味着什么。我试过这个打印声明,它似乎工作得很好,但对于我有非常大的矩阵的情况,我想确保我没有添加或切分有价值的信息。在python的矩阵打印解决方案中,{:4}是什么意思?

+0

哦,太棒了!这很有道理。谢谢。 – Daniel

+0

@ZdaR:“*打印输出为最大4个字符*”。我认为你的意思是**最低**。如果出现超过4个字符,则它们将在最后一个字符串中,如果少于这些字符,它们将被填充。该数字是最小的字段宽度,就像'printf“%4s”'中的一样。试试'“{:4}”。格式(“123456”)'。正如文档所言:“* width是一个定义最小字段宽度的十进制整数。”https://docs.python.org/3/library/string.html#formatspec – cdarke

回答

2

它与输出中的填充和对齐有关。它类似于在cawk等中找到的printf函数中的填充。它给出每个打印元素的宽度n,其中n{:n}

''.join('{:3}'.format(x) for x in range(100)) 

将输出:

' 0 1 2 3 4 5 ... 95 96 97 98 99' 

通知的单独空间的99与两个空格的0左边的左边。换句话说,每个数字的宽度为3个字符。

您还可以使用更传统的语法来实现类似的效果。

''.join('%3s' % x for x in range(100))