use*_*ser 4 python format locale number-formatting digit-separator
我已经看到很多问题教导如何使用comma千位分隔符来做到这一点:
>>> format(1123000,',d')
'1,123,000'
Run Code Online (Sandbox Code Playgroud)
但如果我尝试使用 a dot,它就会变得疯狂:
>>> format(1123000,'.d')
ValueError: Format specifier missing precision
Run Code Online (Sandbox Code Playgroud)
是否有一种简单的Python内置独立于区域设置的方法可以使其输出'1.123.000'而不是输出'1,123,000'?
我已经在“将‘小数点’千位分隔符添加到数字”
上找到了这个答案,但它是手动执行的。它可以更简单,因为format(1123000,'.d')与语言环境无关吗?或者Python没有内置它?
@Eugene Yamash使用
itertools可以给你更多的灵活性:Run Code Online (Sandbox Code Playgroud)>>> 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'
Jam*_*mes 11
如果您只处理整数,您可以使用:
x = 123456789
'{:,}'.format(x).replace(',','.')
# returns
'123.456.789'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
9247 次 |
| 最近记录: |