▶ Python初学者向けにデータ分析に関する記事を書いています
はじめに
今回は、桁数が異なる値の時に0で埋めることで桁数を揃える「0パディング」する方法を基本から解説します。通常、左側を0で埋めることが多いですが、桁数を指定して左寄せ・中央寄せ・右寄せで0埋めすることもできます。順番にみていきましょう。
0で埋めて桁数を揃える
冒頭に記載したようにいくつかの方法があります。まずは一番簡単な文字列メソッドzfillを使った方法を見ていきましょう。
文字列メソッドzfill()を使って埋めをする
早速見ていきましょう。大前提としてzfill()は文字列のメソッドです。0埋めしたいケースの対象は数字が多いかと思いますが、zfill()メソッドを使うには一度文字列に変換する必要があります。zfill()メソッドでは右寄せで0埋めすることができます。桁数を指定して、対象の数字が指定した桁に合うように0で埋めてくれます。
# 4桁の数字を0埋めして8桁に揃える。
num = 1192
str_num = str(num)
str_num.zfill(8)
うまくいきました。与えられた数字をstr()で文字列型に変換してからzfill()メソッドを使います。zfill()メソッドでは桁数8を指定しています。
rjust(), ljust(), center()で0埋めをする
次に紹介するのがrjust(), ljust(), center()メソッドです。いずれも文字列のメソッドです。これらのメソッドはそれぞれ
- rjust():右寄せ
- ljust():左寄せ
- center():中央寄せ
となります。書式を確認しておきましょう。
これらのメソッドは0以外の文字で埋めることもできます。その場合は第二引数で’0’としたところを埋めたい文字で置き換えます。やってみましょう。
# rjust()で0埋めして10桁にする
str_num.rjust(10,'0')
# ljust()で0埋めして10桁にする
str_num.ljust(10,'0')
# center()で0埋めして10桁にする
str_num.center(10,'0')
簡単ですね。center()では0梅が必要となる桁数が奇数の場合は、右側が優先されるケースと左側が優先されるケースがあります。統一された挙動とならないため、利用するときはあらかじめ想定されるケースでどのような挙動となるか確かめておいた方が良いですね。
# center()で0埋めして9桁にする
str_num.center(9,'0')
また、0以外で桁を埋める例も見ておきましょう。
# rjust()で$埋め
str_num.rjust(10, '$')
このように指定した桁数になるように、任意の文字で埋めることができます。このほかにもf-stringやformat()メソッド、%演算子を使った方法もありますが、今回は割愛します。
まとめ
今回は文字列メソッドで0埋めする方法を解説しました。これらの方法は文字列メソッドなので、対象が数字である場合はstr()で文字列に変換してから行う必要があります。
コメント