gpt4 book ai didi

python - 生成量身定制的千位定界符

转载 作者:行者123 更新时间:2023-11-28 21:47:12 25 4
gpt4 key购买 nike

我想在 Python 中定制一千个分隔符。我正在生成 HTML 并想使用 作为千位分隔符。 (看起来像:1 000 000)

到目前为止,我已经找到了以下方法来添加 , 作为分隔符:

>>> '{0:,}'.format(1000000)
'1,000,000'

但我看不出能够使用类似的构造来获得另一个定界符。 '{0:|}'.format(1000000) 例如不起作用。有没有一种简单的方法可以将任何东西()用作千位分隔符?

最佳答案

好吧,你总是可以这样做:

'{0:,}'.format(1000000).replace(',', '|')

结果:'1|000|000'


这里有一个简单的算法。它的前一个版本(ThSep 两次修订)不能处理像 这样的长分隔符:

def ThSep(num, sep = ','):
num = int(num)

if not num:
return '0'

ret = ''
dig = 0
neg = False

if num < 0:
num = -num
neg = True

while num != 0:
dig += 1
ret += str(num % 10)
if (dig == 3) and (num / 10):
for ch in reversed(sep):
ret += ch
dig = 0

num /= 10

if neg:
ret += '-'

return ''.join(reversed(ret))

使用 ThSep(1000000, ' ')ThSep(1000000, '|') 调用它以获得您想要的结果。

虽然它比第一种方法慢大约 4 倍,因此您可以尝试将其重写为生产代码的 C 扩展。仅当速度非常重要时才如此。我在半分钟内转换了 2 000 000 个负数和正数以进行测试。

关于python - 生成量身定制的千位定界符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36889758/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com