Python で文字列に部分文字列が含まれているかどうかを確認する方法

  1. 文字列にサブストリングが含まれているかどうかを確認する in 演算子
  2. 文字列に部分文字列が含まれているかどうかを確認する str.find() メソッド
  3. str.index() メソッド
  4. 部分文字列チェックソリューション

与えられた文字列に特定の部分文字列が含まれているかどうかを確認する必要があることはよくあります。ここにいくつかのメソッドをリストし、実行時のパフォーマンスを比較して最も効率的なメソッドを選択します。

文字列を受け取ります-指定された文字列として It is a given string であり、given はチェックするサブ文字列です。

文字列にサブストリングが含まれているかどうかを確認する in 演算子

in 演算子は、メンバーシップチェック演算子です。x in y は、xy のメンバーである場合、つまり yx を含む場合、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() メソッド

findstring の組み込みメソッドです-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

部分文字列チェックソリューション

  1. in 演算子は、指定された文字列に部分文字列が存在するかどうかを確認するために使用するものです。
  2. str.find()str.index() も使用できますが、パフォーマンスが悪いため最適ではありません

関連記事 - Python String

  • Python で複数の区切り文字に基づいて文字列を分割する方法
  • Python 文字列の空白を削除する方法
  • comments powered by Disqus