index(),find()
基本は「文字列.find(検索する文字列 )」、「文字列.index(検索する文字列 )」で表され、以下のルールがある
文字列の先頭から検索し見つかった場合その位置を返す
先頭は0から始まる
findメソッド指定する文字列がない場合-1を返す。(←indexメソッドとの違い)
indexメソッドは指定する文字列がない場合ValueErrorを返します。(←findメソッドとの違い)
rfind、rindexメソッドを使用すると文字列の末尾から検索する。
以下のコードはエラー時以外indexをfindに書き換えても同じ
code:python
str = 'あいうあいう'
print(str.index('あ')) # 0
print(str.index('い')) # 1
print(str.index('う')) # 2
print(str1.index('あ', 0)) # 0
print(str1.index('あ', 1)) # 3
print(str1.index('あ', 2)) # 3
print(str1.index('あ', 3)) # 3
print(str1.index('あ', 4)) # ValueError: substring not found
print(str1.index('あ', 5)) # ValueError: substring not found
4行目の引数は0で対象の文字列は(あいうあいう)です。位置の0が返る。
5行目の引数は1で対象の文字列は(いうあいう)です。位置の3が返る。
6行目の引数は2で対象の文字列は(うあいう)です。位置の3が返る。
7行目の引数は3で対象の文字列は(あいう)です。位置の3が返る。
8行目の引数は4で対象の文字列は(いう)です。文字(あ)はないのでValueErrorになる。
9行目の引数は5で対象の文字列は(う)です。文字(あ)はないのでValueErrorになる。
code:python
str = 'あいうあいう'
print(str .rfind('あ')) # 3
print(str .rfind('い')) # 4
print(str .rfind('う')) # 5
2~4行目は、後ろから検索し引数の文字列が最初に見つかった位置を返している。
前から検索する+開始位置を指定+終了位置を指定
code:例
文字列.index(検索する文字列 ,開始の位置 ,終了の位置)
code:python
a = 'あいうえお'
print(a.index('お',2,5)) # 4
リストの場合も同じ
code:python
print(val.index('e'))
より参照