python - 如何在Python中每四位用逗号格式化一个数字?

标签 python string localization format numbers

我有一个号码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/

    相关文章:

    c++ - 将两个 vector 中的元素按字母顺序排列到一个 vector 中

    java - 如何将 arraylist = 设置为正则表达式的每个匹配项

    ios - 本地化和警告 : Multiple build commands

    Python 请求抛出 SSLError

    python 使用 pool.map_async 时没有输出

    python - Virtualenv 不能继承 GetSitePackages() 属性

    ios - 如何在应用程序中加载语言文件(ios swift)

    python - 如何在 Python 中创建不立即求值的符号函数执行 DAG?

    python - 从特定邮件地址逐行解析电子邮件

    angular - 有条件地加载样式表 Angular 2