如何在 python 中打印带有细空格字符作为千位分隔符的数字?

red*_*_gm 4 python formatting python-3.x output

我知道例如 "{:,}".format(123456789) 将在 python 中打印 '123,456,789' 作为输出。

但是,我希望用细空格字符作为千位分隔符,而不是逗号。根据here,细空格字符的Python源编码是u"\u2009"。

所以我尝试用 u"\u2009" 替换 "{:,}" 中的逗号,但这会导致语法错误。这可能是因为 python 无法处理生成的嵌套双引号,并且需要转义某些内容。

那么有没有办法让这个或其他机制发挥作用呢?顺便说一句,我也想抑制输出中出现的单引号。

pic*_*ix_ 6

格式化后可以使用replacefrom 方法str替换为空格,即:,"{:,}".format(123456789).replace(",", u"\u2009")

根据这里的官方文档,只有,_可以用作分隔符。要使用用户定义的,您需要使用表示n形式,并更改您的locale设置(请参阅https://docs.python.org/3/library/locale.html#locale.LC_NUMERIC)。您可以创建一个新的本地化并使用这个假本地化来实现您想要的目的,但这是一个相当复杂的解决方案。

编辑:通过假本地化,我真正的意思是计算机中的新语言环境,而不是 Python 中的新语言环境。您可以阅读https://askubuntu.com/questions/653008/how-to-create-a-new-system-locale了解更多详细信息(我认为这可以在大多数发行版上进行调整)