文字列を指定した長さにして左寄せ/中央揃え/右寄せを行う(ljust, center, rjust, zfill)

文字列で用意されているメソッドの中で、文字列を指定した長さにした上で左寄せ/中央揃え/右寄せとなるように指定した文字で埋めた新しい文字列を取得するメソッドの使い方について解説します。

(Last modified: )

文字列を左寄せ/中央揃え/右寄せにする(ljustメソッド, centerメソッド, rjustメソッド)

ljust メソッド、 center メソッド、 rjust メソッドはそれぞれ文字列を指定した長さにした上で左寄せ、中央揃え、右寄せとなるように指定した文字で埋めた新しい文字列を返します。使い方は次の通りです。

str.rjust(width[, fillchar])
str.center(width[, fillchar])
str.ljust(width[, fillchar])

1 番目の引数に指定した文字列の長さ( width )に拡張し、それぞれ左寄せ( ljust )、中央揃え( center )、右寄せ( rjust )にします。指定した長さになるように空白を使って文字列を埋め尽くします。省略可能な 2 番目の引数に文字を指定すると、その文字で指定した長さになるように文字列を埋め尽くします。こちらはあとで試します。

実際の使い方は次の通りです。

print("[" + "Apple".ljust(8) + "]")
>> [Apple   ]

print("[" + "Apple".center(8) + "]")
>> [ Apple  ]

print("[" + "Apple".rjust(8) + "]")
>> [   Apple]

それぞれのメソッドで文字列を左寄せ、中央揃え、右寄せにした上で指定した長さになるまで空白を使って文字列を埋めた新しい文字列を取得しています。

空白以外の文字で埋めつくしたい場合は 2 番目の引数に文字を指定してください。指定する文字は 1 文字である必要があり、 2 文字以上を指定すると TypeError エラーが発生します。

print("Apple".ljust(8, "_"))
>> Apple___

print("Apple".center(8, "p"))
>> pApplepp

print("Apple".rjust(8, "+"))
>> +++Apple

print("Apple".rjust(8, "*+"))
>> Traceback (most recent call last):
>>   File "<stdin>", line 1, in <module>
>> TypeError: The fill character must be exactly one character long

指定した文字を使って文字列が指定した長さになるように埋め尽くされました。

なお指定した長さが元の文字列の長さよりも短い場合には、元の文字列がそのまま返されます。

print("Apple".ljust(3))
>> Apple

print("Apple".center(3))
>> Apple

print("Apple".rjust(3))
>> Apple

文字列を右寄せにして指定した長さになるように符号を考慮して0で埋め尽くす(zfillメソッド)

zfill メソッドはそれぞれ文字列を指定した長さにした上で右寄せとなるように "0" で埋めた新しい文字列を返します。使い方は次の通りです。

str.zfill(width)

1 番目の引数に指定した文字列の長さ( width )に拡張し、右寄せ( rjust )にします。指定した長さになるように "0" を使って文字列を埋め尽くします。 rjust メソッドで 2 番目の引数に "0" を指定した場合と似ていますが、 zfill メソッドの場合は文字列の 1 文字目が "+" か "-" の符号を表す文字だった場合は符号の後から "0" で埋め尽くします。

実際の使い方は次の通りです。

print("89".zfill(5))
>> 00089

print("abc".zfill(6))
>> 000abc

print("-123".zfill(8))
>> -0000123

print("+975".zfill(8))
>> +0000975

2 番目と 3 番目のように文字列の最初が "+" か "-" だった場合には、符号のあとから "0" で指定の長さになるように埋め尽くします。なお対象の文字列は数値を表す文字列に限っているわけではありません。

なお指定した長さが元の文字列の長さよりも短い場合には、元の文字列がそのまま返されます。

print("12345".zfill(3))
>> 12345

-- --

文字列で用意されているメソッドの中で、文字列を指定した長さにした上で左寄せ/中央揃え/右寄せとなるように指定した文字で埋めた新しい文字列を取得するメソッドの使い方について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。