> 백엔드 개발 > 파이썬 튜토리얼 > Python에서 문자열의 N 번째 발생을 찾는 방법은 무엇입니까?

Python에서 문자열의 N 번째 발생을 찾는 방법은 무엇입니까?

DDD
풀어 주다: 2024-10-20 07:30:29
원래의
720명이 탐색했습니다.

How to Find the Nth Occurrence of a String in Python?

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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

원천:php
본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿