回答:
rfind()
またはPython2リンクを使用できます。rindex()
rfind()
rindex()
>>> s = 'Hello StackOverflow Hi everybody'
>>> print( s.rfind('H') )
20
>>> print( s.rindex('H') )
20
>>> print( s.rfind('other') )
-1
>>> print( s.rindex('other') )
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ValueError: substring not found
サブストリングが見つからなかった場合に違いがあり、rfind()
戻り-1
ながらrindex()
例外発生させValueError
(Python2リンクを:ValueError
)。
rfind()
リターンコードを確認したくない場合は、わかりやすいエラーメッセージを表示する-1
ことrindex()
をお勧めします。それ以外の場合、予期しない値-1
がコード内から発生している分を検索できます...
>>> txt = '''first line
... second line
... third line'''
>>> txt.rfind('\n')
22
>>> txt.rindex('\n')
22
more_itertools
すべてのインデックス検索するためのライブラリの提供のツールを文字またはすべてのサブストリングを。
与えられた
import more_itertools as mit
s = "hello"
pred = lambda x: x == "l"
コード
キャラクター
今、rlocate
利用可能なツールがあります:
next(mit.rlocate(s, pred))
# 3
補完的なツールはlocate
次のとおりです。
list(mit.locate(s, pred))[-1]
# 3
mit.last(mit.locate(s, pred))
# 3
部分文字列
またwindow_size
、いくつかのアイテムの先頭のアイテムを見つけるために使用できるパラメーターもあります。
s = "How much wood would a woodchuck chuck if a woodchuck could chuck wood?"
substring = "chuck"
pred = lambda *args: args == tuple(substring)
next(mit.rlocate(s, pred=pred, window_size=len(substring)))
# 59
非アクティブな投稿を復活させようとはしていませんが、まだ投稿されていないため...
(これはこの質問を見つける前に私がやった方法です)
s = "hello"
target = "l"
last_pos = len(s) - 1 - s[::-1].index(target)
説明:最後のオカレンスを検索しているとき、実際には、逆のストリング内の最初のオカレンスを検索しています。これを知って、私はそうしましたs[::-1]
(逆の文字列を返します)、そしてtarget
そこからインデックスを付けました。それlen(s) - 1 - the index found
から、元に戻されていない(つまり元の)文字列のインデックスが必要なためです。
でも気をつけて!場合target
より1つの文字よりも、あなたはおそらく逆の文字列でそれを見つけることができません。これを修正するには、を使用しますlast_pos = len(s) - 1 - s[::-1].index(target[::-1])
。これは、の逆のバージョンを検索しtarget
ます。
rindex()
関数を使用して、文字列内の最後の文字を取得できます
s="hellloooloo"
b='l'
print(s.rindex(b))
Python String rindex()メソッド
説明
Python文字列メソッドrindex()は、部分文字列strが見つかった最後のインデックスを返すか、そのようなインデックスが存在しない場合は例外を発生させ、オプションで検索をstring [beg:end]に制限します。
構文
以下はrindex()メソッドの構文です-
str.rindex(str, beg=0 end=len(string))
パラメータ
str-検索する文字列を指定します。
beg-これは開始インデックスで、デフォルトでは0です
len-これは終了インデックスであり、デフォルトでは文字列の長さに等しい。
戻り値
このメソッドは、見つかった場合は最後のインデックスを返し、そうでない場合はstrが見つからない場合は例外を発生させます。
例
次の例は、rindex()メソッドの使用法を示しています。
ライブデモ
str1 = "this is string example....wow!!!";
str2 = "is";
print str1.rindex(str2)
print str1.index(str2)
上記のプログラムを実行すると、次の結果が生成されます-
5
2
str
変数名として使用しないようにします。Pythonで避けるべきもう1つの変数名はabc
です。abc
ネイティブAPIで呼び出されるモジュールがあります。