
rsplit(),split(),rstrip()の違いと使用例
こんにちは!
エンジニアを目指して頑張っているVictoriaです。
最近pythonのlistを復習していますが、タイトルにある3つのメソッドの区別がつかなくなりました。そのため、こちらのNoteで詳しく説明します。
rsplit()
定義
文字列を指定した区切り文字で分割して、listとして返します。右端から分割します。
使用例
a = input().rsplit()
print(a)
type(a)
上記コードの実行結果は以下になります。


input()に「東京 大阪 京都」をスペースを開けて入力しますと、listとして出力されます。そしてtypeでaの型を調べますと、listと出力されました。
数字を入力したらどうなるでしょうか?1234をスペースを開けて入力しますと、同じlistとして出力されます。そしてaの型がlistになっています。

rsplit()はデフォルトで空白を一つの区切りで分割します。その他の記号を一つの区切りとして分割したい場合、以下のように書けば大丈夫です。

split()
定義
split()はrsplit()と同じく、文字列を指定した区切りで分割する役割です。そしてデフォルトでは空白を一つの区切りで分割します。
違いは、split()は左から分割します。rsplit()は右から分割します。
使用例
a = input().split(" ",1)
print(a)
type(a)
一行目のsplit(" ",1)の1とは一回のみ分割する意味です。
実行結果は以下になります。

ちなみに、rsplit()の場合の実行結果が以下になります。

rstrip()
定義
文字列の右側から指定した文字(デフォルトでは空白、改行)を削除します。
使用例
a = input().rstrip()
print(a)
type(a)
実行しますと、結果が以下になります。

rstrip("-")は文字列の右側から「-」を削除する意味です。
input()メソッドはstr型ですので、「-」を削除してからそのまま1,2,3,4と出力しました。そしてtypeがstr型です。
ちなみに、「-」を2つ入力した場合でも2つの「-」がともに削除されます。

まとめ
rsplit(): 文字列を区切り文字で右から左に分割し、リストを返します。
split(): 文字列を区切り文字で左から右に分割し、リストを返します。
rstrip(): 文字列の右側から指定した文字を削除し、新しい文字列を返します。