我已经看到了很多问题,教导用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'
答案 0 :(得分:1)
如果您只处理整数,可以使用:
x = 123456789
'{:,}'.format(x).replace(',','.')
# returns
'123.456.789'