Python - 将数值格式化为特定列宽

时间:2015-07-18 21:24:13

标签: python formatting

我无法将数值格式化为固定宽度列。我想生成这样的文本列:

10    7  9.215600 -1.921500  0.000000 -9.215600 -1.921500  0.000000  0.012810
11    9 -10.66190 -2.066200  0.000000 -10.66190  2.066200  0.000000  0.013770

我试过了

" {:2d} {:4d} {:9f} {:9f} {:9f} {:9f} {:9f} {:9f} {:9f}".format( ... )

哪个输出:

10    7  9.215600 -1.921500  0.000000 -9.215600 -1.921500  0.000000  0.012810
11    9 -10.661900 -2.066200  0.000000 -10.661900  2.066200  0.000000  0.013770

我也试过

"{:3d}{:5d}{:10f}{:10f}{:10f}{:10f}{:10f}{:10f}{:10f}".format( ... )

哪个输出:

10    7  9.215600 -1.921500  0.000000 -9.215600 -1.921500  0.000000  0.012810
11    9-10.661900 -2.066200  0.000000-10.661900  2.066200  0.000000  0.013770

任何人都知道如何在顶部显示结果?似乎应该很容易,但我似乎无法弄明白。

1 个答案:

答案 0 :(得分:0)

您希望如何格式化数字似乎存在问题。

您希望始终为负号保留一个空格,即使它不存在。在检查负数的特定代码之外,我不确定是否可以单独使用字符串格式化。

那就是说,有办法更接近你想要的东西。尝试

"{:3d}{:5d}{:-10f}{:-10f}..."

其中所有浮动宽度均为负值而非正值。