파이썬

[Python] find() / index() / rfind() / rindex()

audwndl 2024. 8. 6. 16:47

변수.find(찾을 문자)
변수.index(찾을 문자) 

find()와 index()는 모두 문자열에서 특정 문자의 위치를 찾는 함수다.

함수 모두 변수.find(찾을 문자) 또는 변수.index(찾을 문자) 형태로 사용되며, 이 때 찾고자 하는 문자를 인자로 전달한다.

문자열에서 해당 문자가 처음으로 나타나는 위치의 인덱스를 반환하며, 인덱스는 0부터 시작한다.

 

 
# 문자 'b'가 처음 등장하는 위치를 출력
>>> 'abracadabra'.find('b')
1
>>> 'abracadabra'.index('b')
1

# 문자 'o'가 처음 등장하는 위치를 출력
>>> a = 'hello'
>>> a.find('o')
4
>>> a.index('o')
4

 

변수.find (찾을 문자, 시작점, 종료점)
변수.index(찾을 문자, 시작점, 종료점)

두 함수는 모두 문자열 내에서 검색을 시작할 위치와 끝낼 위치를 지정할 수 있다.

이 경우 (찾을 문자, 시작점) 또는 (찾을 문자, 시작점, 종료점) 형태로 사용된다.

종료점을 생략할 경우 문자열의 끝까지 검색한다. 단, 종료점만 지정하는 방법은 사용할 수 없다.

# 3번째 인덱스부터 'a'가 처음 등장하는 위치를 출력
>>> 'abracadabra'.index('a', 3)
4

# 1번째~3번째 사이에 'o'가 있는지 확인
>>> a = 'hello'
>>> a.find('o', 1, 3)
-1  # 찾는 값이 없으면 find는 -1을 반환

차이점

find() 함수

find() 함수는 찾는 문자가 문자열 내에 없을 경우 -1을 반환한다. 이 함수는 문자열에서만 사용 가능하며, 리스트나 튜플, 딕셔너리 등 다른 자료형에서는 사용할 수 없다. 만약 문자열이 아닌 자료형에서 사용하려 하면 AttributeError가 발생한다.

 

index() 함수

index() 함수는 찾는 문자가 없을 경우 ValueError를 발생시킨다. index()는 문자열 외에도 리스트나 튜플에서 사용할 수 있지만, 딕셔너리에서는 사용할 수 없으며, 이 경우 AttributeError가 발생한다.


변수.rfind(찾을 문자)
변수.rindex(찾을 문자)

문자열에서 해당 문자가 마지막으로 나타나는 위치의 인덱스를 찾고싶으면