반응형
안녕하세요. 개발자 Jindory입니다.
오늘은 Python의 find와 index 함수의 사용법에 대해서 알아보고자 합니다.
1. find(), index() 공통적인 내용
1) 두 함수의 동일한 사용방법
'문자열'.find('찾을문자') / '문자열'.index('찾을 문자') 형태로 두 함수 모두 괄호() 안에 문자의 인덱스를 찾을때 사용한다. 문자열의 위치는 숫자로 출력되고 0부터 시작한다.
사용예시
# 문자 'x'가 첫번째 위치한 자리를 출력
>>> 'oxoxoxoxox'.find('x')) # find 함수
1
>>> 'oxoxoxoxox'.index('x')) # index 함수
1
# 문자 'o'가 첫번째 위치한 자리를 출력
>>> a = 'hello'
>>> a.find('o')) # find 함수
4
>>> a.index('o')) # index 함수
4
2) 시작점, 종료점을 지정
(sub[,start[,end]]) 형태로 문자를 찾는 시작점과 종료점을 지정할 수 있다.
괄호 안에 (찾을 문자열,시작점,종료점) 순서로 입력할 수 있다. 종료지점 없이 시작점만 지정할 때는(찾는 문자열, 시작점) 형태로 사용한다. 즉, 문자열 뒤에 숫자가 1개이면 시작점, 숫자가 2개이면 시작점과 종료점을 나타낸다. 숫자가 1개인 경우 시작점을 나타태기 때문에 종료점만 지정하는 방법으로는 사용할 수 없다.
사용예시
# 문자열중 2번째 위치부터 처음 'x'가 위치한 자리
>>> 'oxoxoxoxox'.index('x', 2)
3
# a변수에서 1번째~3번째 사이에 문자 'o'가 위치한 자리
>>> a = 'hello'
>>> a.find('o', 1, 3)
-1
# find함수는 찾는 값이 없을 때 -1을 출력한다.
위 사용 예시에서 찾는 값이 없는 경우 find는 -1을 출력했다. 찾는 값이 없는 경우의 출력 결과가 다른것이 find와 index 함수의 차이점이다. 두 함수의 차이점은 아래에서 계속 설명한다.
2. find(), index() 차이점
1) find()
- 찾는 문자열이 없는 경우 : -1을 반환한다
- 사용 가능한 자료 : 문자열
find() 함수는 문자열만 사용이 가능하다. 리스트, 튜플, 딕셔너리 자료형에서는 find() 함수를 사용할 수 없다. 만일 사용하게 되면 AttributeError가 발생한다.
2) index()
- 찾는 문자열이 없는 경우 : ValueError 발생
- 사용 가능한 자료형 : 문자열, 리스트, 튜플
문자열, 리스트, 튜플 자료형에서는 사용이 가능하나 딕셔너리 자료형에서는 사용할 수 없다. 사용시 AttributeError가 발생한다.
혹시라도 정정할 내용이나 추가적으로 필요하신 정보가 있다면 댓글 남겨주시면 감사하겠습니다.
오늘도 Jindory 블로그에 방문해주셔서 감사합니다.
[ 참조 ]
반응형