Pythonで数値の末尾の00…を消したい

Python

例えば、

126.3400

という末尾に0が1文字以上つづいた数値文字列を

126.34

などと末尾にある0を全て取り除いた文字列として取り出したいときの方法。

サンプル

remove_tail_zero.py

import re

# 元の数値文字列
original = "126.3400"
print(original)

# 末尾の0を取り除いた数値文字列
remove_tail_zero = re.sub("0+$", "", original)
print(remove_tail_zero)

実行結果

126.3400
126.34

解説

まず末尾をチェックすればよいので末尾を示す正規表現の「$」を使う。
0が1文字以上を表す正規表現は「0+」となる。
この2つを組み合わせた「0+$」が、末尾にある1文字以上の0という文字列という意味の正規表現となる。

末尾の0を削除する」の考え方だが、「末尾の0を何もない文字に置き換える」という風にとらえることもできる。

正規表現に一致する文字列を指定の文字列に置換できる機能を持つre.subというメソッドがあるのでこれを使う。

使い方

re.sub(正規表現パターン, 置換したい文字列, 元の数値文字列)

例えば「126.3400」から末尾の0を取り除きたいなら

re.sub("0+$", "", "126.3400")

などとすれば良い。

re.subを利用するには、先頭で

import re

としてreモジュールのインポートが必要となる。

コメント

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