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

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

DDD
DDDオリジナル
2024-12-24 20:06:16727ブラウズ

How Can I Efficiently Count Overlapping String Occurrences in Python?

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

文字列の出現数をカウントする場合、重複を見落とすと不正確な結果が生じる可能性があります。一般的なアプローチの 1 つは、文字列を 1 文字ずつループすることですが、これは文字列が大きくなると非効率になる可能性があります。

より良い方法はありますか?

はい、あります。 C で動作する find() メソッドを使用した、より効率的なソリューションです。改善されたソリューションは次のとおりです。コード:

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

仕組み

  • string.find() メソッドは、文字列内の start 位置から開始して最初に出現した sub を検索します。 .
  • ループは、出現箇所がなくなるまで継続します。
  • 開始位置は によって増分されます。

使用例

たとえば、これを使用して文字列 "1011101111" 内の "11" の出現を数えます。このメソッドは同じ結果 5 を生成しますが、効率が向上します。

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

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