指定列左侧行格式化以列出数据?

时间:2011-01-30 21:15:18

标签: python string python-2.x

xxxxxxxxxxxxx1.11xxxxxxxxxx1.11xxxxxxxxxxx1.11
xxxxxxxxxxxxx1.11xxxxxxxxxx1.11xxxxxxxxxx11.11
  1. Python中是否有一些现成的模块,我可以轻松地在其上进行操作,例如格式化17个符号,14个符号,然后是15个符号?
  2. 你怎么能得到n.b.与1.11和11.11的差异很小?
  3. N.b。数字可能更大但不超过10个标志。行计数46 (=17+14+15)是常量。

    [更新] 请注意,我使用的是Python 2.6.5,因此会收到错误ValueError: zero length field name in format的建议。

3 个答案:

答案 0 :(得分:2)

您不需要模块或库来执行此操作,请使用string formatting。要避免ValueError,请指定参数在提供的值中的索引:

"{0:>17}".format(11.1)

答案 1 :(得分:2)

字符串格式是内置的:

Python 2.7 / 3.1的示例

>>> '{:x>17}'.format(s)
'xxxxxxxxxxxx11.11'

>>> '{:x>17}{:x>14}{:x>15}'.format(11.1, 11.1, 11.1)
'xxxxxxxxxxxxx11.1xxxxxxxxxx11.1xxxxxxxxxxx11.1'

答案 2 :(得分:1)

有人评论了正确的答案但删除了它,所以我会在这里发布。我会删除它,如果他/她发布它所以学分归于合适的人。

('%17.2f%14.2f%15.2f' % (1.11, 1.11, 11.11))