Python에서 N 번째로 나타나는 문자열 찾기
문자열 내에서 n 번째로 나타나는 부분 문자열의 인덱스를 식별하는 것은 프로그래밍의 일반적인 작업. 그러나 Python의 내장 find 메소드는 발생 횟수를 지정하는 간단한 방법을 제공하지 않습니다.
해결책:
find 메소드에 직접 의존하는 대신, 다음은 부분 문자열을 반복적으로 찾고 원하는 값에 도달할 때까지 발생 횟수를 늘리는 Python 솔루션입니다.
<code class="python">def find_nth(haystack: str, needle: str, n: int) -> int: """Find the index of the nth occurrence of needle in haystack.""" start = haystack.find(needle) while start >= 0 and n > 1: start = haystack.find(needle, start+len(needle)) n -= 1 return start</code>
사용법:
문자열 "foofoofoofoo"에서 하위 문자열 "foofoo"가 두 번째로 나타나는 경우 다음을 호출합니다.
<code class="python">find_nth("foofoofoofoo", "foofoo", 2)</code>
이는 두 번째 "foofoo" 하위 문자열의 시작 위치에 해당하는 인덱스 6을 반환합니다.
겹치는 발생에 대한 고려 사항:
부분 문자열의 n번째 중복 발생에 대한 인덱스를 찾아야 하는 경우 find_nth 함수를 수정하여 시작 위치를 증가시킬 수 있습니다. 바늘 길이 대신 1씩:
<code class="python">def find_nth_overlapping(haystack, needle, n): """Find the index of the nth overlapping occurrence of needle in haystack.""" start = haystack.find(needle) while start >= 0 and n > 1: start = haystack.find(needle, start+1) n -= 1 return start</code>
위 내용은 Python에서 문자열의 N 번째 발생을 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!