在Python 2.7中使用format()小语言对齐浮点数到小数点

4 投票
1 回答
3171 浏览
提问于 2025-04-17 18:49

我想打印一些数字,让它们的小数点对齐。目前打印出来的效果是这样的:

ydisp       0.176
xdisp       -0.509

而我想要的效果是这样的:

ydisp        0.176
xdisp       -0.509

我现在用的代码是:

print "{:{width}} {}".format(items,float_dict[items], width=12)

不过我有点迷糊了,我在Python 2.7的手册里找到了一段关于格式化的小知识:

“在宽度字段前加一个零('0')字符,可以让数字类型的输出在填充时考虑符号。这相当于用'0'作为填充字符,并且对齐方式为'='。”

但是我不太明白这个'0'字符该怎么用。如果有人能给我一点提示就好了。

注意:字典的键是字符串类型,值是浮点数类型。

1 个回答

8

使用 ' ' 作为符号修饰符,可以在符号前加一个空格:

>>> '{:20} {: }'.format('ydisp', 0.176)
'ydisp                 0.176'
>>> '{:20} {: }'.format('xdisp', -0.509)
'xdisp                -0.509'

注意在 : 冒号后面有一个空格。这会让正数的左边加一个空格,而负数则会显示一个 - 符号。

撰写回答