我有一个号码12345
我想要结果 '1,2345'
.我尝试了以下代码,但失败了:
>>> n = 12345
>>> f"{n:,}"
'12,345'
最佳答案
正则表达式将为您工作:
import re
def format(n):
return re.sub(r"(\d)(?=(\d{4})+(?!\d))", r"\1,", str(n))
>>> format(12345)
'1,2345'
>>> format(12345678)
'1234,5678'
>>> format(123456789)
'1,2345,6789'
说明:比赛:
(\d)
匹配一个数字... (?=(\d{4})+(?!\d))
...后跟一组或多组正好为 4 位的数字。 代替:
\1,
将匹配的数字替换为它自己和一个 ,
关于python - 如何在Python中每四位用逗号格式化一个数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69255471/