python 特定の文字列が最後に表れるインデックスを取得

特定の文字列が最後に表れるインデックスを取得する方法を説明します。
本記事を読むと、s = “EbiEbi”がある時に最後に表れるEbiのインデックスを取得する方法がわかります。

str.rindex関数を使用する方法

rindex関数とrfind関数の使用方法:
rindex関数とrfind関数は共にstr型のメソッドなので、「str型変数.rindex関数(検索対象文字列)」の様に使用してください。rfind関数も同様です。

rindex関数とrfind関数の正常処理:
文字列中に検索対象文字列(下記のサンプルコードでは”Ebi”)が現れる時、最大のインデックスを返します。つまり、最後に表れる検索対象文字列のインデックスを返します。

rindex関数とrfind関数の違い:
検索対象文字列が存在しない時の挙動が異なります。正常時の戻り値は同じです。

  • rindex関数は、ValueErrorを発生させます
  • rfind関数は、-1を返します
s = "EbiEbi"
#①
print(s.rindex("Ebi"))
"""出力
3
"""

print(s.rindex("_"))
"""出力
ValueError: substring not found
"""
  • #①:
    • 最後に表れるEbiはインデックス3から開始するので、出力は3です。インデックスは0から開始するので、左から4番目の文字のインデックスは3になります。

str.rfind関数を使用する方法

説明は、rindex関数を使用する方法を参照してください。

s = "EbiEbi"
print(s.rfind("Ebi"))
"""出力
3
"""
print(s.rfind("_"))
"""出力
-1
"""

参考

python – Find index of last occurrence of a substring in a string – Stack Overflow
その他の方法や説明

組み込み型 — Python 3.9.4 ドキュメント
rfind関数, rindex関数の説明

コメント

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