Python String find() メソッドと例
Python 文字列 find() とは?
Python 文字列 find() 指定された文字列から部分文字列が最初に出現するインデックスを見つけるために Python ライブラリで使用できる関数です。指定された部分文字列が指定された文字列に存在しない場合、文字列 find() 関数は例外をスローする代わりに -1 を返します。
この Python 文字列 find() メソッドのチュートリアルでは、次のことを学びます:
- Python 文字列 find() とは?
- Python 文字列 find() の構文
- デフォルト値を使用した find() メソッドの例
- 開始引数を使用した find() の例
- 開始引数と終了引数を使用した find() の例
- find() メソッドの例 文字列内の特定の部分文字列の位置を見つけるには
- Python 文字列 rfind()
- Python 文字列 index()
- 部分文字列の合計出現回数を見つけるには
Python 文字列 find() の構文
Python find() 関数の基本的な構文は次のとおりです:
string.find(substring,start,end)
find() メソッドのパラメーター
以下は、Python の関数 String find() の 3 つのパラメーターです。
- 部分文字列 :指定された文字列で検索する部分文字列。
- 開始 :(オプション) 部分文字列の検索を開始する開始値。デフォルトでは 0 です。
- 終了 :(オプション) 部分文字列の検索が終了する終了値。デフォルトでは、値は文字列の長さです。
デフォルト値を使用した find() メソッドの例
Python の find() メソッドに渡されるパラメーターは部分文字列、つまり検索する文字列、開始、終了です。開始値はデフォルトで 0 で、終了値は文字列の長さです。
この例では、Python のメソッド find() をデフォルト値で使用します。
find() メソッドは部分文字列を検索し、部分文字列が最初に出現した位置を示します。部分文字列が指定された文字列に複数回存在する場合でも、最初の文字列のインデックスまたは位置が返されます。
例:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!" print("The position of Tutorials is at:", mystring.find("Tutorials"))
出力:
The position of Tutorials is at: 12
start 引数を使用した find() の例
指定された文字列の部分文字列を検索し、検索を開始する開始位置を指定できます。 start パラメーターは同じ目的で使用できます。
この例では、開始位置を 15 に指定し、Python メソッドの find() は 15 の位置から検索を開始します。ここで、終了位置は文字列の長さになり、15 の位置から文字列の最後まで検索します。
例:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!" print("The position of Tutorials is at:", mystring.find("Tutorials", 20))
出力:
The position of Tutorials is at 48
開始引数と終了引数を使用した find() の例
start および end パラメータを使用して、文字列全体を検索するのではなく、検索を制限しようとします。
例:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!" print("The position of Tutorials is at:", mystring.find("Tutorials", 5, 30))
出力:
The position of Tutorials is at 12
find() メソッドの例 文字列内の特定の部分文字列の位置を見つけるには
find() が部分文字列の最初の出現のインデックスを見つけるのに役立つことはわかっています。指定された文字列に部分文字列が存在しない場合は、-1 を返します。以下の例は、文字列が存在する場合はインデックスを示し、検索している部分文字列が見つからない場合は -1 を示しています。
例:
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!" print("The position of Best site is at:", mystring.find("Best site", 5, 40)) print("The position of Guru99 is at:", mystring.find("Guru99", 20))
出力:
The position of Best site is at: 27 The position of Guru99 is at: -1
Python 文字列 rfind()
Python 関数 rfind() は find() 関数に似ていますが、唯一の違いは、rfind() が指定された部分文字列の最高のインデックスを提供し、find() が最低、つまり最初のインデックスを提供することです。部分文字列が存在しない場合、rfind() と find() はどちらも -1 を返します。
以下の例では、文字列「Meet Guru99 Tutorials Site. Python チュートリアルに最適なサイトです!」そして、find() と rfind() を使用して部分文字列チュートリアルの位置を見つけようとします。文字列内のチュートリアルの出現は 2 回です。
これは、find() と rfind() の両方が使用されている例です。
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!" print("The position of Tutorials using find() : ", mystring.find("Tutorials")) print("The position of Tutorials using rfind() : ", mystring.rfind("Tutorials"))
出力:
The position of Tutorials using find() : 12 The position of Tutorials using rfind() : 48
出力は、find() が取得した最初のチュートリアル部分文字列のインデックスを提供し、rfind() が部分文字列チュートリアルの最後のインデックスを提供することを示しています。
Python 文字列 index()
Python 文字列 index() は、find() と同じように、指定された部分文字列の位置を示す関数です。 2 つの唯一の違いは、部分文字列が文字列に存在しない場合、index() は例外をスローし、find() は -1 を返すことです。
index() と find() の動作を示す実際の例を次に示します。
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!" print("The position of Tutorials using find() : ", mystring.find("Tutorials")) print("The position of Tutorials using index() : ", mystring.index("Tutorials"))
出力:
The position of Tutorials using find() : 12 The position of Tutorials using index() : 12
find() と index() の両方で同じ位置を取得しています。指定された部分文字列が文字列に存在しない場合の例を見てみましょう。
mystring = "Meet Guru99 Tutorials Site.Best site for Python Tutorials!" print("The position of Tutorials using find() : ", mystring.find("test")) print("The position of Tutorials using index() : ", mystring.index("test"))
出力:
The position of Tutorials using find() : -1 Traceback (most recent call last): File "task1.py", line 3, in <module> print("The position of Tutorials using index() : ", mystring.index("test")) ValueError: substring not found
上記の例では、部分文字列「test」の位置を見つけようとしています。部分文字列は指定された文字列に存在しないため、find() を使用すると位置が -1 として取得されますが、index() の場合は上記のようにエラーがスローされます。
部分文字列の合計出現回数を見つけるには
指定された文字列で部分文字列が発生した合計回数を見つけるには、Python で find() 関数を使用します。 0 から文字列の末尾まで for-loop を使用して文字列をループします。 find() の startIndex パラメータを使用します。
変数 startIndex と count は 0 に初期化されます。内部 for –loop は、find() と startIndex を 0 として指定された文字列内に部分文字列が存在するかどうかをチェックします。
-1 でない場合、find() から返される値は、startIndex を文字列が見つかったインデックスに更新し、カウント値もインクリメントします。
これが実際の例です:
my_string = "test string test, test string testing, test string test string" startIndex = 0 count = 0 for i in range(len(my_string)): k = my_string.find('test', startIndex) if(k != -1): startIndex = k+1 count += 1 k = 0 print("The total count of substring test is: ", count )
出力:
The total count of substring test is: 6
まとめ
- Python の string find() メソッドは、指定された文字列で部分文字列が最初に出現するインデックスを見つけるのに役立ちます。部分文字列が存在しない場合は -1 を返します。
- Python の find substring メソッドに渡されるパラメータは、部分文字列、つまり検索する文字列、開始、および終了です。デフォルトの開始値は 0 で、終了値は文字列の長さです。
- 指定された文字列の部分文字列を検索し、検索を開始する開始位置を指定できます。 start パラメーターは同じ目的で使用できます。
- start および end パラメータを使用して、文字列全体を検索するのではなく、検索を制限しようとします。
- Python 関数 rfind() は find() 関数に似ていますが、唯一の違いは、rfind() は指定された部分文字列の最高のインデックスを提供し、find() は最低のインデックス、つまり最初のインデックスを提供することです。部分文字列が存在しない場合、rfind() と find() はどちらも -1 を返します。
- Python 文字列 index() は、find() と同じように、指定された部分文字列の位置を提供するもう 1 つの関数です。この 2 つの唯一の違いは、部分文字列が文字列に存在しない場合、index() は例外をスローし、find() は -1 を返すことです。
- find() を使用して、特定の文字列内の部分文字列の合計出現数を見つけることができます。
Python
- Java の String Length() メソッド:例で見つける方法
- 部分文字列と例を含む Java String indexOf() メソッド
- 例を使用した Python 文字列 strip() 関数
- 例を使用した Python 文字列 count()
- Python String format() 例で説明
- Python 文字列の長さ | len() メソッドの例
- 例を含む Python Lambda 関数
- 例を使用した Python round() 関数
- 例を使用した Python map() 関数
- Python Timeit() と例
- Python の type() と isinstance() と例