用于千位分隔符的打印号码, 可以使用python格式字符串:
'{:,}'.format(1234567890)
但是如何指定我需要一个千位分隔符的空间?
答案 0 :(得分:46)
如果你不想弄乱locale
:
'{:,}'.format(1234567890.001).replace(',', ' ')
答案 1 :(得分:14)
这会将语言环境设置为您的默认操作系统位置:
import locale
locale.setlocale(locale.LC_ALL, '')
然后你可以使用:
"{0:n}".format(1234567890)
答案 2 :(得分:14)
@ user136036的答案相当不错,但不幸的是它没有考虑到Python漏洞的现实。完整答案可能如下:
如果您的平台的区域设置正常,那么只需使用区域设置:
import locale
locale.setlocale(locale.LC_ALL, '')
print("{:,d}".format(7123001))
结果取决于您的语言环境和Python实现是否正常。
但是,如果根据语言环境的Python格式被破坏,例如, Linux上的Python 3.5?
如果Python不尊重grouping=True
参数,您可以使用区域设置和解决方法(使用货币格式):
locale.setlocale(locale.LC_ALL, '')
locale._override_localeconv = {'mon_thousands_sep': '.'}
print(locale.format('%.2f', 12345.678, grouping=True, monetary=True))
上面在我的平台上给出了12.345,68。将货币设置为False或省略它 - Python不会将数千个分组。
指定locale._override_localeconv = {'thousands_sep': '.'}
不执行任何操作。
如果你没有时间检查什么工作正常以及你的平台上的Python被破坏了什么,你可以使用常规字符串替换功能(如果你想交换逗号和点到点和逗号): / p>
print("{:,.2f}".format(7123001.345).replace(",", "X").replace(".", ",").replace("X", "."))
替换空格的逗号是微不足道的(点是假设小数分隔符):
print("{:,.2f}".format(7123001.345).replace(",", " ")
答案 3 :(得分:11)
您必须使用'n'
区域设置感知数字格式,并使用set your locale来使用空格作为千位分隔符。是的,这很痛苦。
'n'
- 数字。这与'd'
相同,只是它使用当前区域设置插入适当的数字分隔符。
答案 4 :(得分:-2)
如果您要处理对象列并且不想弄乱语言环境,第一个答案会错过一件事:
'{:,}'.format(1234567890.001).str.replace(',', ' ')