Python 문자열 검색 find 함수 인덱스 취득

문자열 안에서 찾고 싶은 문자가 몇 번째에 있는지 찾고 싶은 경우가 있습니다.

find 함수를 사용하면 지정한 문자가 어디에 있는지 인덱스(index)를 반환합니다.

그리도 뒤에서부터 찾고 싶은 경우에는 rfind 함수를 사용해서 찾을 수 있습니다.

 

find 함수

원하는 문자가 몇 번째에 있는지 찾는 예제를 보겠습니다.

str = 'abcabcabc'
index = str.find('b') # index는1 (2번째 문자)

 

변수 index에는 1이 반환됩니다.

변수 str에 ‘abcabcabc’ 문자 b가 어디에 있는지 find 함수로 검색했습니다.

b는 2번째에 위치해 있지만 인덱스 번호는 0부터 시작하기 때문에 1이 반환됩니다.

만약 지정한 문자를 찾지 못한 경우에는 -1을 반환합니다.

 

검색 시작 위치 지정 예제

str = 'abcabcabc'
index = str.find('b', 2) # index는 4 (5번째 문자)

 

find 함수의 두 번째 파라미터는 시작 위치를 의미합니다.

생략하는 경우에는 인덱스 0부터 시작합니다.

지정한 경우에는 입력한 위치부터 검색을 시작합니다.

예제에서는 2를 설정했기 때문에 c부터 검색을 시작합니다.

지정한 검색 문자를 모두 찾고 싶은 경우도 있습니다.

 

모두 찾기 예제

str = 'abcabcabc'
target = 'b'
index = -1
while True:
    index = str.find(target, index + 1)
    if index == -1:
        break
    print('start=%d' % index)

 

find에 지정한 문자를 모두 찾아 출력하도록 합니다.

댓글