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

How to force dot on thousands 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')locale independent 可以更简单吗?或者Python没有内置?

@Eugene Yarmash Using itertools can give you some more flexibility:

>>> 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'

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

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