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メソッドを使用しましょう。