Python 文字列 find() メソッドと例

何ですか Python 文字列 find()?

Python 文字列検索() は、 Python 指定された文字列から部分文字列が最初に出現するインデックスを見つけるライブラリ。指定された部分文字列が指定された文字列に存在しない場合、文字列 find() 関数は例外をスローする代わりに -1 を返します。

の構文 Python 文字列検索()

基本的な構文は Python find() 関数は次のとおりです。

string.find(substring,start,end)

find() メソッドのパラメータ

ここでは、関数String find()の3つのパラメータを示します。 Python:

  • サブストリング: 指定された文字列内で検索する部分文字列。
  • start: (オプション) 部分文字列の検索を開始する開始値。 デフォルトでは 0 です。
  • end: (オプション) 部分文字列の検索が終了する終了値。 デフォルトでは、値は文字列の長さです。

デフォルト値を使用した find() メソッドの例

渡されるパラメータ Python find() メソッドは、部分文字列、つまり検索する文字列、開始、終了を指定します。開始値はデフォルトで 0 で、終了値は文字列の長さです。

この例では、find()メソッドを使用します。 Python デフォルト値で。

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 メソッドは、位置 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() の例

開始パラメータと終了パラメータを使用して、文字列全体を検索するのではなく、検索を制限してみます。

例:

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() を使用して部分文字列チュートリアルの位置を見つけようとします。 文字列内に Tutorials が XNUMX 回出現します。

以下は、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() が取得した最初の Tutorials 部分文字列のインデックスを提供し、rfind() が部分文字列 Tutorials の最後のインデックスを提供することを示しています。

Python 文字列インデックス()

この Python 文字列 index() は find() と同様に指定された部分文字列の位置を返す関数です。この 1 つの関数の唯一の違いは、部分文字列が文字列内に存在しない場合に index() は例外をスローし、find() は -XNUMX を返すことです。

以下は、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() では上記のようにエラーがスローされます。

部分文字列の出現回数の合計を見つけるには

指定された文字列内で部分文字列が出現した回数の合計を調べるには、find()関数を使用します。 Python0 から文字列の最後まで for ループを使用して文字列をループします。find() の startIndex パラメータを使用します。

変数 startIndex と count は 0 に初期化されます。 for ループ内では、find() を使用して指定された文字列内に部分文字列が存在するかどうかがチェックされ、startIndex が 0 に設定されます。

find() から返された値が -1 でない場合、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 文字列 find() メソッドは、指定された文字列内で部分文字列が最初に出現するインデックスを見つけるのに役立ちます。部分文字列が存在しない場合は -1 を返します。
  • 渡されるパラメータ Python 部分文字列の検索メソッドは、部分文字列、つまり検索する文字列、開始、終了です。開始値はデフォルトで 0 で、終了値は文字列の長さです。
  • 指定された文字列内の部分文字列を検索し、検索を開始する開始位置を指定できます。 start パラメータも同様に使用できます。
  • 開始パラメータと終了パラメータを使用して、文字列全体を検索するのではなく、検索を制限してみます。
  • この Python function rfind() は find() 関数に似ていますが、唯一の違いは、 rfind() は指定された部分文字列の最高のインデックスを提供し、 find() は最低のインデックス、つまり最初のインデックスを提供することです。 部分文字列が存在しない場合は、rfind() と find() の両方が -1 を返します。
  • この Python 文字列 index() は、find() と同様に、指定された部分文字列の位置を返すもう 1 つの関数です。この XNUMX つの関数の唯一の違いは、部分文字列が文字列に存在しない場合に index() は例外をスローし、find() は -XNUMX を返すことです。
  • find() を使用すると、指定された文字列内の部分文字列の合計出現数を見つけることができます。

»詳細 Python 文字列分割()