Python 문자열에서 문자의 모든 인덱스 찾기

Muhammad Maisam Abbas 2023년1월30일
  1. Python에서 정규 표현식을 사용하여 문자열 내부의 모든 문자 인덱스 찾기
  2. Python에서 yield 키워드를 사용하여 문자열 내부의 모든 문자 인덱스 찾기
  3. Python에서 목록 이해를 사용하여 문자열 내부의 모든 문자 인덱스 찾기
Python 문자열에서 문자의 모든 인덱스 찾기

이 튜토리얼에서는 파이썬에서 문자열 안에 있는 문자의 모든 인덱스를 가져오는 방법에 대해 설명합니다.

Python에서 정규 표현식을 사용하여 문자열 내부의 모든 문자 인덱스 찾기

특정 문제에 대해 Python의 re 모듈 내에서 finditer() 함수를 사용할 수 있습니다. finditer() 함수는 패턴과 문자열을 입력 매개변수로 사용합니다. 문자열을 왼쪽에서 오른쪽으로 읽고 패턴이 발생한 모든 인덱스를 반환합니다. 목록 이해와 함께 이 함수를 사용하여 Python의 목록 내부에 결과를 저장할 수 있습니다. 다음 코드 스니펫은 정규 표현식을 사용하여 문자열 내에서 문자의 모든 인덱스를 찾는 방법을 보여줍니다.

import re

string = "This is a string"
char = "i"
indices = [i.start() for i in re.finditer(char, string)]
print(indices)

출력:

[2, 5, 13]

re.finditer() 함수를 사용하여 string 내부의 각 문자를 반복하고 char와 일치하는 모든 문자를 찾습니다. char와 일치하는 모든 문자의 인덱스 i.start()를 목록 형태로 반환하고 indices 안에 저장했습니다. 결국 인덱스의 모든 요소를 ​​표시했습니다.

Python에서 yield 키워드를 사용하여 문자열 내부의 모든 문자 인덱스 찾기

특정 문제를 해결하기 위해 함수 내에서 yield 키워드를 사용할 수도 있습니다. yield 키워드는 해당 함수의 지역 변수 상태를 파괴하지 않고 함수에서 여러 값을 반환하는 데 사용됩니다. 함수가 다시 호출되면 이전 yield 문에서 실행이 시작됩니다. 이 키워드를 사용하여 문자열 안에 있는 문자의 모든 인스턴스를 반환할 수 있습니다. 다음 코드 예제는 yield 키워드를 사용하여 문자열 내에서 문자의 모든 인덱스를 찾는 방법을 보여줍니다.

def find(string, char):
    for i, c in enumerate(string):
        if c == char:
            yield i


string = "This is a string"
char = "i"
indices = list(find(string, char))
print(indices)

출력:

[2, 5, 13]

문자열 내부의 각 문자를 반복하고 문자가 문자와 일치하는 경우 색인 i를 산출하는 find(string, char) 함수를 정의했습니다. find() 함수를 호출하는 동안 반환된 모든 값을 목록에 저장하고 목록의 모든 요소를 ​​표시했습니다.

Python에서 목록 이해를 사용하여 문자열 내부의 모든 문자 인덱스 찾기

목록 이해를 사용하여 문제를 해결할 수도 있습니다. 목록 이해는 이전에 존재하는 목록을 기반으로 새 목록을 만드는 데 사용됩니다. 목록 내포를 사용하여 문자열 변수 내의 각 문자를 반복하고 문자가 원하는 문자와 일치하는 경우 인덱스를 반환할 수 있습니다. 목록 이해는 목록 형식으로 값을 반환합니다. 이 인덱스 값을 목록에 저장하고 결과를 표시할 수 있습니다. 다음 코드 조각은 목록 이해를 사용하여 문자열 내에서 문자의 모든 인덱스를 찾는 방법을 보여줍니다.

string = "This is a string"
char = "i"
indices = [i for i, c in enumerate(string) if c == char]
print(indices)

출력:

[2, 5, 13]

목록 이해를 사용하여 string 변수 내부의 각 문자 c를 반복하고 c 문자가 원하는 문자 char와 같으면 인덱스 i를 반환했습니다. 이것은 문자열 안에 있는 문자의 모든 인덱스를 찾는 가장 간단하고 쉬운 방법입니다.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

관련 문장 - Python String