在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
那么可以将它们组合在一起吗?
答案 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)