コンソール(ターミナル)に表形式でデータを出力したり、ログを見やすく整形したりする際、文字の配置を揃える処理は欠かせません。
Pythonの文字列型には、指定した幅の中で文字列の位置を調整するためのメソッド rjust(), ljust(), center() が用意されています。これらを使うと、不足している部分を指定した文字(デフォルトはスペース)で埋めることができます。
この記事では、それぞれのメソッドの使い方と、埋め込み文字の指定方法について解説します。
目次
1. 右寄せにする: rjust()
rjust() (Right Justify) は、文字列を右端に寄せ、左側の余白を指定した文字で埋めます。
構文:
新しい文字列 = 元の文字列.rjust(全体の幅, 埋め込み文字)
※埋め込み文字を省略した場合は、半角スペースが使われます。
使用例
text = "abc"
# 全体を6文字にし、左側を "*" で埋める
right_aligned = text.rjust(6, "*")
print(f"元の文字: '{text}'")
print(f"右寄せ : '{right_aligned}'")
実行結果:
元の文字: 'abc'
右寄せ : '***abc'
全体の幅が6文字になり、左側の3文字分が * で埋められました。
2. 左寄せにする: ljust()
ljust() (Left Justify) は、文字列を左端に寄せ、右側の余白を指定した文字で埋めます。
構文:
新しい文字列 = 元の文字列.ljust(全体の幅, 埋め込み文字)
使用例
text = "abc"
# 全体を6文字にし、右側を "*" で埋める
left_aligned = text.ljust(6, "*")
print(f"左寄せ : '{left_aligned}'")
実行結果:
左寄せ : 'abc***'
3. 中央寄せにする: center()
center() は、文字列を中央に配置し、両側の余白を指定した文字で埋めます。
構文:
新しい文字列 = 元の文字列.center(全体の幅, 埋め込み文字)
使用例
text = "abc"
# 全体を6文字にし、両側を "*" で埋める
centered = text.center(6, "*")
print(f"中央寄せ: '{centered}'")
実行結果:
中央寄せ: '*abc**'
全体の幅から文字数を引いた余りが奇数の場合(この例では 6 – 3 = 3文字分)、右側の余白が1文字多くなるように調整されます。
応用:f-string(書式指定)を使う方法
Python 3.6以降では、f-string の書式指定を使っても同様のことができます。こちらの方が、変数を埋め込む際に直感的に記述できるため、モダンなコードではよく使われます。
<: 左寄せ>: 右寄せ^: 中央寄せ
text = "abc"
width = 6
fill = "*"
# 書式: {値 : 埋め文字 配置 幅}
print(f"右寄せ : '{text:*>6}'")
print(f"左寄せ : '{text:*<6}'")
print(f"中央寄せ: '{text:*^6}'")
実行結果:
右寄せ : '***abc'
左寄せ : 'abc***'
中央寄せ: '*abc**'
まとめ
rjust(幅, 文字): 右寄せ(左側を埋める)。ljust(幅, 文字): 左寄せ(右側を埋める)。center(幅, 文字): 中央寄せ(両側を埋める)。- 文字を省略するとスペースで埋められます。
- f-string の書式指定(
<,>,^)でも同様の処理が可能です。
