티스토리 뷰

 

파이썬 find( ), index( )

 

- 순서 -

1.find / index 공통적인 내용

2.find / index 차이점

 


1. find( ), index( ) 공통적인 내용

 

1-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

 

1-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( ) 차이점

2-1) find( )

찾는 문자가 없는 경우에 -1을 출력한다.

문자열을 찾을 수 있는 변수는 문자열만 사용이 가능하다.  리스트, 튜플, 딕셔너리 자료형에서는 find 함수를 사용할 수 없다. 만일 사용하게 되면 AttributeError 에러가 발생한다.

 

2-2) index( )

찾는 문자가 없는 경우에 ValueError 에러가 발생한다.

문자열, 리스트, 튜플 자료형에서 사용 가능하고 딕셔너리 자료형에는 사용할 수 없어 AttributeError 에러가 발생한다.

 

반응형
댓글
반응형