【1分でわかるPython入門】splitメソッドで文字列を後ろから分割する方法

Python

splitメソッドで文字列を後ろから分割する方法について解説します
非常に簡単なので1分間ほどで理解できます。

splitメソッドの文法の解説はこちらをご参照ください。

splitメソッドではできない?

結論から述べると、splitメソッドでは後ろから分割することはできません。
splitメソッドで分割数をしていすることはできますが、先頭から分割していきます。

>>> "a,b,c".split(',', 1)
['a', 'b,c']

従って、後ろから分割したい場合にはsplitメソッドではなく、rsplitメソッドを使うのがお勧めです。

rsplitメソッドの文法と後ろから分割する方法

rsplitメソッドの使い方は以下の通りです。

str.rsplit(sep=None, maxsplit=- 1)

rsplit()は文字列型の値のメソッドとして使用します。
第一引数sepには区切り文字を入力します。
第二引数maxsplitには分割の回数を入力します。分割の回数を指定しない場合は可能な限り分割されます。rsplitの場合、後ろから分割してゆきます。
返却値は区切った単語のリストを返します。

例を見てみましょう。

>>> "a,b,c".rsplit(",")
['a', 'b', 'c']
>>> "a,b,c".rsplit(",", 1)
['a,b', 'c']

分割数を指定していない場合は全ての区切り文字で分割するのでsplitメソッドもrsplitメソッドも結果は同じです。

しかし、分割数を指定した場合は結果が異なります。

>>> "a,b,c".split(",", 1)
['a', 'b,c']
>>> "a,b,c".rsplit(",", 1)
['a,b', 'c']

まとめ

splitメソッドでは先頭から分割することしかできません。後ろから分割したい場合にはrsplitメソッドを使用しましょう。

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