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

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

Patricia Arquette
풀어 주다: 2024-10-20 07:28:29
원래의
589명이 탐색했습니다.

How to Find the nth Occurrence of a Substring in a String in Python?

문자열에서 n번째 하위 문자열 찾기

n번째 하위 문자열 발생에 해당하는 인덱스를 식별하는 것은 다양한 프로그래밍 시나리오에서 자주 발생하는 작업입니다. Python에는 이러한 목적으로 특별히 설계된 내장 함수가 없습니다. 그러나 이 결과를 얻기 위해 사용할 수 있는 접근 방식은 여러 가지가 있습니다.

한 가지 간단한 접근 방식은 루프를 사용하여 문자열을 반복하고 하위 문자열의 발생 횟수를 계산하는 것입니다. 시작 인덱스는 첫 번째 발생 결과로 초기화되고 n번째 발생이 발견될 때까지 루프가 계속됩니다.

<code class="python">def find_nth_occurrence(haystack, needle, n):
    index = haystack.find(needle)
    while index >= 0 and n > 1:
        index = haystack.find(needle, index + len(needle))
        n -= 1
    return index</code>
로그인 후 복사

이 방법은 효율적이고 이해하기 쉽지만 여러 번의 통과가 필요합니다. 큰 문자열의 경우 시간이 많이 걸릴 수 있습니다.

또 다른 Python 방식은 정규식을 사용하는 것입니다. 정규식은 문자열을 검색하고 조작하는 강력하고 간결한 방법을 제공합니다. 다음 함수는 re.findall() 메서드를 사용하여 하위 문자열의 모든 항목을 찾은 다음 n번째 인덱스를 검색합니다.

<code class="python">import re

def find_nth_occurrence_regex(haystack, needle, n):
    occurrences = re.findall(needle, haystack)
    if len(occurrences) >= n:
        return haystack.index(occurrences[n - 1])
    else:
        return -1</code>
로그인 후 복사

이 메서드는 큰 문자열에 대한 반복 접근 방식보다 빠르지만 추가 모듈(재)을 가져와야 합니다. 또한 일부 사용자에게는 반복 접근 방식보다 가독성이 낮을 수 있습니다.

반복 접근 방식과 정규식 접근 방식 간의 선택은 궁극적으로 현재 작업의 특정 요구 사항에 따라 달라집니다. 작은 문자열의 경우 반복 접근 방식으로 충분할 수 있지만 큰 문자열의 경우 정규식 접근 방식이 더 나은 성능을 제공할 수 있습니다.

위 내용은 Python의 문자열에서 하위 문자열의 n 번째 발생을 찾는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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