python – 如何设置自定义千位分隔符?

我知道理论上大整数的数字可以按数千个分组,以提高可读性:

Python 3.5.2 (default, Nov 17 2016, 17:05:23) 
[GCC 5.4.0 20160609] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>> import locale
>>> locale.setlocale(locale.LC_ALL, 'en_US.UTF-8')
'en_US.UTF-8'
>>> locale.format('%d', 1234567890, grouping=True)
'1,234,567,890'
>>> "{:n}".format(1234567890)
'1,234,567,890'

但是,令人惊讶的是,这不适用于每个语言环境:

>>> locale.setlocale(locale.LC_ALL, 'pl_PL.UTF-8')
'pl_PL.UTF-8'
>>> locale.format('%d', 1234567890, grouping=True)
'1234567890'
>>> "{:n}".format(1234567890)
'1234567890'

为什么数字没有格式化?我觉得这很奇怪.我希望打印出类似于1 234 567 890的东西.

根据Format Specification Mini-Language,我们可以明确地强制执行两个可能的分隔符:逗号和下划线_.可悲的是,逗号不适合波兰语,因为它在那里被用作小数点分隔符,而像1_234_567_890这样的数字对于大多数人来说看起来很奇怪.

我们能否以某种方式强制使用不间断的空间作为千位分隔符?

最佳答案 pl_PL语言环境千位分隔符似乎是 empty.我不知道这是否准确地表示波兰的常见用法,但Python正确地根据pl_PL语言环境的规则格式化您的数字.这可能是区域设置文件中的错误.

据我所知,没有选项可以手动指定千位分隔符和十进制标记字符.

点赞