Python で文字列に部分文字列が含まれているかどうかを確認する方法
胡金庫
2023年10月10日
-
文字列にサブストリングが含まれているかどうかを確認する
in
演算子 -
文字列に部分文字列が含まれているかどうかを確認する
str.find()
メソッド -
str.index()
メソッド - 部分文字列チェックソリューション
与えられた文字列に特定の部分文字列が含まれているかどうかを確認する必要があることはよくあります。ここにいくつかのメソッドをリストし、実行時のパフォーマンスを比較して最も効率的なメソッドを選択します。
文字列を受け取ります-指定された文字列として It is a given string
であり、given
はチェックするサブ文字列です。
文字列にサブストリングが含まれているかどうかを確認する in
演算子
in
演算子は、メンバーシップチェック演算子です。x in y
は、x
が y
のメンバーである場合、つまり y
が x
を含む場合、True
と評価されます。
文字列 y
が部分文字列 x
を含む場合、True
を返します。
>>> "given" in "It is a given string"
True
>>> "gaven" in "It is a given string"
False
in
オペレータのパフォーマンス
import timeit
def in_method(given, sub):
return sub in given
print(min(timeit.repeat(lambda: in_method("It is a given string", "given"))))
0.2888628
文字列に部分文字列が含まれているかどうかを確認する str.find()
メソッド
find
は string
の組み込みメソッドです-str.find(sub)
。
部分文字列 sub
が見つかった str
の最下位インデックスを返します。sub
が見つからなかった場合は -1
を返します。
>>> givenStr = 'It is a given string'
>>> givenStr.find('given')
8
>>> givenStr.find('gaven')
-1
str.find()
メソッドのパフォーマンス
import timeit
def find_method(given, sub):
return given.find(sub)
print(min(timeit.repeat(lambda: find_method("It is a given string", "given"))))
0.42845349999999993
str.index()
メソッド
str.index(sub)
is a string
built-in method that returns the lowest index in str
where sub
is found. It will raise ValueError
when the substring sub
is not found.
>>> givenStr = 'It is a given string'
>>> givenStr.index('given')
8
>>> givenStr.index('gaven')
Traceback (most recent call last):
File "<pyshell#7>", line 1, in <module>
givenStr.index('gaven')
ValueError: substring not found
str.index()
メソッドのパフォーマンス
import timeit
def find_method(given, sub):
return given.find(sub)
print(min(timeit.repeat(lambda: find_method("It is a given string", "given"))))
0.457951
部分文字列チェックソリューション
in
演算子は、指定された文字列に部分文字列が存在するかどうかを確認するために使用するものです。str.find()
とstr.index()
も使用できますが、パフォーマンスが悪いため最適ではありません
著者: 胡金庫