ホームページ >バックエンド開発 >Python チュートリアル >Python で重複する部分文字列の出現を効率的にカウントするにはどうすればよいですか?

Python で重複する部分文字列の出現を効率的にカウントするにはどうすればよいですか?

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2024-12-09 18:18:171009ブラウズ

How Can I Efficiently Count Overlapping Substring Occurrences in Python?

Python で重複する文字列の出現をカウントする

この質問は、特定の部分文字列の出現をカウントする効率的な Python メソッドを見つけることに関するものです。オーバーラップ用。推奨されるアプローチの 1 つは、反復検索を含みます:

def function(string, str_to_search_for):
  count = 0
  for x in xrange(len(string) - len(str_to_search_for) + 1):
    if string[x:x+len(str_to_search_for)] == str_to_search_for:
      count += 1
  return count

ただし、潜在的に高速な方法では、Python find() 関数を利用して C で検索を実行します。

def occurrences(string, sub):
  count = start = 0
  while True:
    start = string.find(sub, start) + 1
    if start > 0:
      count += 1
    else:
      return count

このアプローチは、低級言語で検索を実行することで C の計算効率を向上させます。 while ループを使用すると、部分文字列の出現を検索し続け、見つかったときに count 変数をインクリメントします。最終的には、重複するものも含めた出現の総数を返します。

以上がPython で重複する部分文字列の出現を効率的にカウントするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。