Python で部分文字列の N 番目の出現箇所を見つける
大きな文字列内の特定の部分文字列の出現位置を特定することは、頻繁に行われるプログラミング タスクです。初心者の Python 開発者にとって、これを効率的かつ慣用的に達成することは課題となる可能性があります。この記事は、最も Python 的なアプローチに焦点を当て、部分文字列の n 番目の出現を見つけるために利用できるさまざまな方法を説明することを目的としています。
反復アプローチ
単純な反復ソリューションには、次のものが含まれます。部分文字列を複数回検索します。デフォルトでは、Python の find() メソッドは最初の出現箇所のみを検索します。 n 番目の出現を取得するには、前の出現の直後の位置から開始して連続的に検索できます。
<code class="python">def find_nth(haystack: str, needle: str, n: int) -> int: start = haystack.find(needle) while start >= 0 and n > 1: start = haystack.find(needle, start+len(needle)) n -= 1 return start</code>
この方法は簡単でメモリ効率が高くなります。
重複する出現
n 番目の重複箇所が必要な場合は、find() メソッドの増分を調整する必要があります。
<code class="python">def find_nth_overlapping(haystack, needle, n): start = haystack.find(needle) while start >= 0 and n > 1: start = haystack.find(needle, start+1) n -= 1 return start</code>
Python の考慮事項
正規表現や文字列分割を使用したソリューションと比較して、反復アプローチは、単純さ、平坦性、読みやすさという Python の設計原則に準拠しています:
以上がPython で部分文字列の N 番目の出現を効率的に見つけるにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。