Python中的多种格式选项

时间:2012-08-01 16:20:42

标签: python

在Python中,我如何一次执行多种格式:

所以我想让一个数字没有小数位并且有一个千位分隔符:

num = 80000.00

我希望它是80,000

我知道我可以直接做这两件事,但我如何将它们结合起来:

"{:,}".format(num) # this will give me the thousands separator
"{0:.0f}".format(num) # this will give me only two decimal places

那么可以将它们组合在一起吗?

1 个答案:

答案 0 :(得分:9)

您可以组合使用两种格式字符串。逗号在冒号后首先出现:

>>> "{:,.0f}".format(80000.0)
'80,000'

请注意,在仅格式化单个值时,您还可以使用免费的format()函数而不是方法str.format()

>>> format(80000.0, ",.0f")
'80,000'

编辑:在Python 2.7中引入了包含千位分隔符的,,因此上述转换不适用于Python 2.6。在该版本中,您需要滚动自己的字符串格式。一些临时代码:

def format_with_commas(x):
    s = format(x, ".0f")
    j = len(s) % 3
    if j:
         groups = [s[:j]]
    else:
         groups = []
    groups.extend(s[i:i + 3] for i in range(j, len(s), 3))
    return ",".join(groups)