なんらかのIDやコードを採番する際、桁数を合わせるため整数の文字列に対してゼロパディング(ゼロ埋め)をしたい場合があるのではないでしょうか?pythonには色々な方法が用意されています。
Contents
ゼロパディング
printf形式
まずは以前ご紹介した文字列のフォーマットを応用してゼロ埋めする方法をご紹介します。printf形式ですが、変換フラグ文字というものを持っています。(ここでは変換フラグ文字について全て説明しませんので、興味がある方は公式ドキュメントを参照してください。)
整数値に対して0という変換フラグ文字を使用すると、ゼロパッディングをしてくれます。例えば、なんらかのIDに「item_4桁整数」を採番したい場合、以下のように記述します。
id_text = "item_%(number)04d" item_id = id_text % {"number" : 3} print(item_id) # item_0003
ただし、これは変数が数値型でなければならない点に注意してください。
文字列型のメソッド zfill
pythonの文字列には様々なメソッドが予め用意されていますが、zfillというメソッドを利用すると0埋めをしてくれます。引数で指定した長さで'0'で左詰めした文字列を返します。元のオブジェクトは変更されません。
print("5".zfill(4)) # 0005
これはわかりやすいですね。数値でもprintf形式を使いたくない場合はstrメソッドで文字列に変換すればzfillを使用することができます。
0以外でパッディングする、右寄せ左寄せ中央寄せをする
さらに、0以外でパッディングする場合、右寄せ、左寄せ、中央寄せでそれぞれrjust、ljust、centerという文字列型のメソッドが用意されています。こちらも元のオブジェクトは変更されません。
文字列型のメソッド rjust、ljust、center
text = "hoge" print(text.rjust(8, "*")) # ****hoge print(text.ljust(8, "*")) # hoge**** print(text.center(8, "*")) # **hoge**
これもわかりやすいですね。
色々ありますが、用途に応じて使い分けてみてください。