今回はPythonで、文字列の中のある文字を基準にして、その前の部分の文字列とその後ろの部分の文字列とに分割し、それらの文字列を取得する方法の解説記事です。
やりたいこと
まず、次のような文字列があったとします。
吾輩は猫である
この文字列を、「猫」という文字を基準にして、
- 吾輩は
- である
という2つの文字列に分割し、それぞれの文字列を取得したい。
これが今回のやりたいことです。
方法:文字列メソッドrpartition()を使う
文字列メソッドrpartition()
実はPythonの文字列メソッドには、まさにこれをするためのメソッドが用意されています。それが、rpartition()です
Python公式サイトには次のように書かれています。
文字列を sep の最後の出現位置で区切り、 3 要素のタプルを返します。タプルの内容は、区切りの前の部分、区切り文字列そのもの、そして区切りの後ろの部分です。もし区切れなければ、タプルには二つの空文字列とその後ろに元の文字列そのものが入ります。
最大のポイントは、返ってくる結果は次のようなタプルだということです。
#返されるタプル
(前部分, 区切り文字, 後部分)
それではさっそく、使ってみましょう。
rpartition()の使い方
txt: str = "吾輩は猫である"
output: tuple = txt.rpartition("猫")
print(output)
type(output)
結果は、
('吾輩は', '猫', 'である')
これはタプルですので、インデックスを使って各要素にアクセスできます。
区切り文字が「猫」、それより前の部分がインデックスゼロ番に、区切り文字より後の部分がインデックス2番に格納されています。
実際にインデックスを指定してその要素を取得してみましょう。
output[0]
こうすると、結果は、
'吾輩は'
という文字列が取得できました。
おなじく、
output[2]
とすると、
'である'
という文字列が取得できます。
区切りの文字を、2文字以上の文字列にしても使えます。たとえば、次のように、
output2: tuple = txt.rpatition("は猫で")
とすると、
('吾輩', 'は猫で', 'ある')
というタプルが返ってきます。
世界最大の動画学習サイトUdemyのおすすめPython講座【PR】
- AWSで作るWEBアプリケーション 実践講座
- 現役シリコンバレーエンジニアが教えるPython
3 入門 + 応用 +アメリカのシリコンバレー流コードスタイル
- 独学で身につけるPython〜基礎編〜【業務効率化・自動化で残業を無くそう!】
- 【完全初心者向け】絶対に挫折させないPython入門講座
- 【ゼロから始めるデータ分析】 ビジネスケースで学ぶPythonデータサイエンス入門
- はじめてのPython 少しずつ丁寧に学ぶプログラミング言語Python3のエッセンス
- 【世界で55万人が受講】データサイエンティストを目指すあなたへ〜データサイエンス25時間ブートキャンプ〜
- 現役シリコンバレーエンジニアが教えるアルゴリズム・データ構造・コーディングテスト入門