[python] 문자열 검색 find() 함수




💡 팁 문자열에서 index는 0부터 시작해서 문자와 문자 사이에 위치해요 



1. 검색 시작 인덱스 위치 지정 검색

  • find 함수는 지정한 문자가 어디에 있는지 인덱스(index)를 반환합니다.
  • '시작 인덱스 위치' 를 생략하면 처음(인덱스 0)부터 검색합니다.

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


  • 원하는 문자가 몇 번째에 있는지 찾는 경우 find('b', 시작 인덱스 위치) 를 사용합니다.

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

    cs

  • 찾는 문자가 없을 경우 index = -1을 반환 합니다.




2. 전체 범위 검색

  • 지정한 검색 문자를 모두 찾고 싶은 경우에는 While 이나 For 문을 돌며 index가 -1이 될 때까지 문자를 검색하면 됩니다.

    1
    2
    3
    4
    5
    6
    7
    8
    str = 'abcabcabc'
    target = 'b'
    index = -1
    while True:
        index = str.find(target, index + 1)
        if index == -1:
            break
        print('start=%d' % index)
    cs




3. 뒤에서 부터 검색하는 경우

  • rfind()는 뒤에서부터 찾고 싶은 경우에는 rfind 함수를 사용해서 찾을 수 있습니다.
  • '가' 를 0번째 부터 검색하는 경우, 왼쪽으로 가니 맨 뒤로 가서 왼쪽으로 검색합니다.

    1
    2
    3
    4
    str='아버지가 방에 들어가시다.'
    print(len(str))
    print(str.rfind('가'0))   #0번째 인덱스 부터 왼쪽으로 검색
    print(str.rfind('가'10))  #10번째 인덱스 부터 왼쪽으로 위치
    cs




[참고] String 에서 Index 위치

  • 아래에서 보시는 바와 같이 인덱스는 문자와 문자 사이에 위치합니다.
        
 +---+---+---+---+---+---+
 | P | y | t | h | o | n |
 +---+---+---+---+---+---+
 0   1   2   3   4   5   6
-6  -5  -4  -3  -2  -1

댓글 쓰기

0 댓글