如何用Python将点放入数字?

时间:2013-10-23 14:31:38

标签: python string-formatting

如何通过从右边开始的组中将3个数字分开来自动放置点?

示例:

in: 1234; out 1.234
in: 12345678; out 12.345.678

2 个答案:

答案 0 :(得分:9)

您正在寻找千位分隔符。使用format() function格式化您的号码,使用逗号作为千位分隔符,然后用点替换逗号:

>>> format(1234, ',').replace(',', '.') 
'1.234'
>>> format(12345678, ',').replace(',', '.') 
'12.345.678'

此处','格式表示十进制数应使用千位分隔符格式化(请参阅Format Specification Mini-language)。

使用str.format()方法可以在更宽的字符串格式中实现相同的效果,其中模板中的占位符将替换为值:

>>> 'Some label for the value: {:,}'.format(1234).replace(',', '.')
'Some label for the value: 1,234'

然后你冒着意外更换输出字符串中其他句号的风险!

您的另一个选择是使用依赖于区域设置的'n'格式,但这需要为配置正确LC_NUMERIC选项的区域设置配置您的计算机。

答案 1 :(得分:5)

这是一个简单的解决方案:

>>> a = 12345678
>>> "{:,}".format(a)
'12,345,678'
>>> "{:,}".format(a).replace(",", ".")
'12.345.678'
>>>

这使用字符串的.format方法添加逗号分隔符,然后使用.replace方法将这些逗号更改为句点。