Python 文字列の逆引き検索 質問する

Python 文字列の逆引き検索 質問する

文字列と文字列への任意のインデックスがあります。インデックスの前にある部分文字列の最初の出現を見つけたいです。

例: インデックスを使用して2番目のIのインデックスを見つけたいのですが、str.rfind()

s = "Hello, I am 12! I like plankton but I don't like Baseball."
index = 34 #points to the 't' in 'but'
index_of_2nd_I = s.rfind('I', index)
#returns = 36 and not 16 

ここで、rfind() は 2 番目の I (16) のインデックスを返すと予想されますが、36 が返されます。ドキュメントで調べたところ、rfind は逆方向検索の略ではないことがわかりました。

私は Python をまったく知らないのですが、逆検索の組み込みソリューションはありますか? Python [::-1] マジックを使用して文字列を逆順にし、find などを使用するようなものはありますか? それとも、文字列を文字ごとに逆順に反復処理する必要がありますか?

ベストアンサー1

あなたの電話rfindを伝える探し始めるインデックス34で、rfind オーバーロードこれは文字列、開始、終了を受け取ります。文字列の先頭 ( 0) から開始し、 で終了するように指示しますindex

>>> s = "Hello, I am 12! I like plankton but I don't like Baseball."
>>> index = 34 #points to the 't' in 'but'
>>> index_of_2nd_I = s.rfind('I', 0, index)
>>>
>>> index_of_2nd_I
16

おすすめ記事