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

Python에서 하위 문자열의 N 번째 발생을 효율적으로 찾는 방법은 무엇입니까?

Barbara Streisand
Barbara Streisand원래의
2024-10-20 07:27:021121검색

How to Efficiently Find the Nth Occurrence of a Substring in Python?

Python에서 N번째 하위 문자열 발생 찾기

더 큰 문자열 내에서 특정 하위 문자열 발생 위치를 식별하는 것은 빈번한 프로그래밍 작업입니다. . 초보 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에서 하위 문자열의 N 번째 발생을 효율적으로 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.