Pythonで4桁区切りにする方法

Pythonで数値をカンマ3桁区切りにするには次のようにします。

src = 123456789
result = "{:,}".format(src)
print(result) # 123,456,789

{:,}
でなく
{:_}
とするとアンダースコア区切りになります。
記号は変えられますが桁数を変える方法が見つかりませんでした。

次のようにすると3桁以外で区切ることができます。
一度逆順にして桁数ごとにカンマを入れ元の順に戻します。

import re
def comma(src, digit):
  dst = str(src)
  dst = "".join(list(reversed(dst)))
  dst = re.sub(r"(\d{"+str(digit)+"})", r"\1,", dst)
  dst = "".join(list(reversed(dst)))
  dst = re.sub(r"^,", "", dst)
  return dst

src = 123456789
digit = 4
result = comma(src, digit)
print(result) # 1,2345,6789

コメント

タイトルとURLをコピーしました