如何在千位分隔符上强制点?

时间:2018-01-24 04:03:32

标签: python format locale number-formatting digit-separator

我已经看到了很多问题,教导用comma作为千位分隔符来做这件事是多么容易:

>>> format(1123000,',d')
'1,123,000'

但如果我尝试使用dot,那就很难了:

>>> format(1123000,'.d')
ValueError: Format specifier missing precision

是否有一种简单的Python内置区域设置独立方式使其输出'1.123.000'而不是'1,123,000'

我已经在Add 'decimal-mark' thousands separators to a number 找到了这个答案,但它手动完成了。它可以更简单format(1123000,'.d')区域设置吗?或者Python没有内置它?

  

@Eugene Yarmash使用itertools可以为您提供更多灵活性:

>>> from itertools import zip_longest
>>> num = "1000000"
>>> sep = "."
>>> places = 3
>>> args = [iter(num[::-1])] * places
>>> sep.join("".join(x) for x in zip_longest(*args, fillvalue=""))[::-1]
'1.000.000'

1 个答案:

答案 0 :(得分:1)

如果您只处理整数,可以使用:

x = 123456789
'{:,}'.format(x).replace(',','.')
# returns
'123.456.789'