Python で文字列に部分文字列が含まれているかどうかを確認する方法
胡金庫
2023年10月10日
Python
Python String
-
文字列にサブストリングが含まれているかどうかを確認する
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()も使用できますが、パフォーマンスが悪いため最適ではありません
チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe
著者: 胡金庫
