PYTHON 如何在每隔三位数加点来分隔数字?

26 浏览
0 Comments

PYTHON 如何在每隔三位数加点来分隔数字?

示例

test = "123456789123"

我尝试了

test = "1234567"
print(".".join(test))

结果

1.2.3.4.5.6.7

但我希望得到这个结果

结果

123.456.789.123

0
0 Comments

这个问题的出现是因为作者想要将数字按照每三位用点分隔开,以增加可读性。原文提供了一种解决方法,即使用正则表达式来实现。

解决方法如下所示:

import re
print(re.sub(r'(?

运行上述代码,输出结果为:

12.345.673.456.456.456

这个正则表达式使用了前瞻来检查给定位置后面的数字位数是否可以被3整除。通过将匹配到的位置替换为点号,就实现了每三位用点分隔的效果。

希望给出负评的人能够为我们提供一个更好的解决方法。即使被接受的答案得到了两个负评,我认为还是有更好的方法存在。我个人认为,将两个常量和输入字符串传递给标准库方法,用一行代码解决问题的方法非常高效。所以,我真的很想知道为什么这样做值得被负评。

0
0 Comments

问题出现的原因是需要将数字按照每三位加一个点的形式进行分隔。为了解决这个问题,可以使用Python的字符串格式化功能来实现。

首先,如果不需要点,可以直接使用格式化字符串的方式来实现分隔。代码如下所示:

formated_number = "{:,}".format(value)

这样就可以将数字value按照每三位加一个逗号的方式进行分隔。

其次,如果真的需要用点作为分隔符,可以使用字符串的replace方法来替换逗号为点。代码如下所示:

formated_number.replace(',','.')

这样就可以将逗号替换为点,实现数字按照每三位加一个点的分隔形式。

通过以上方法,可以很方便地实现将数字按照每三位加一个点的形式进行分隔。

0
0 Comments

问题出现的原因是需要将给定的数字按照每三个数字以点号分隔的方式进行分割。

解决方法如下:

test = '123456789123'
result = ''
while test:
    result += test[:3]
    if len(test) > 3:
        result += '.'
    test = test[3:]
print(result)

输出结果:123.456.789-123

0