Language/Python

index() 함수

스우스우03 2025. 4. 20. 15:17

1. 파이썬 index() 함수

  • index() 함수는 리스트(List), 튜플(Tuple), 문자열(String) 등의 시퀀스 자료형에서 특정 값의 첫 번째 위치(인덱스)를 반환하는 함수이다.

 

1.1 기본 문법

시퀀스.index(찾을값, 시작인덱스(옵션), 끝인덱스(옵션))
  • 찾을값 : 시퀀스 내에서 찾고자 하는 값이다.
  • 시작인덱스 : 탐색을 시작할 위치이며 기본값은 0이다.
  • 끝인덱스 : 탐색을 종료할 위치이며 기본값은 시퀀스의 끝이다.

 

1.1.1 반환값
  • 찾는 값이 존재하면 해당 값이 처음 등장하는 위치(인덱스)를 반환한다.
  • 찾는 값이 없으면 ValueError 예외가 발생한다.

 

 

1.2 예제

1.2.1 리스트에서 사용 예시
fruits = ['apple', 'banana', 'cherry', 'banana']
index_banana = fruits.index('banana')
print(index_banana)  # 출력: 1
  • 첫 번째 'banana'가 등장하는 인덱스인 1이 반환된다.

 

1.2.2 시작 위치와 종료 위치 지정
fruits = ['apple', 'banana', 'cherry', 'banana']
index_banana = fruits.index('banana', 2)
print(index_banana)  # 출력: 3
  • 인덱스 2부터 검색하므로 두 번째 'banana'가 있는 3이 반환된다.

 

1.2.3 문자열에서 사용 예시
text = "hello world"
print(text.index('o'))      # 출력: 4
print(text.index('o', 5))   # 출력: 7
  • 문자열도 인덱스 기반 시퀀스이므로 동일하게 사용 가능하다.

 

1.2.4 없는 값을 찾을 때 예외 발생
numbers = [1, 2, 3]
print(numbers.index(5))  # ValueError: 5 is not in list
  • 값이 존재하지 않으면 ValueError가 발생하므로 예외 처리를 고려해야 한다.

 

 

1.3 예외 처리와 함께 사용

try:
    idx = ['a', 'b', 'c'].index('d')
except ValueError:
    idx = -1
print(idx)  # 출력: -1
  • 존재하지 않을 경우를 대비해 try-except 블록으로 안전하게 처리하는 것이 좋다.

 

 

1.4 유의 사항

  • index() 함수는 가장 먼저 발견된 요소의 인덱스만 반환한다.
  • 여러 개가 존재해도 가장 앞의 값만 반환되므로, 다음 값을 찾으려면 start 인덱스를 변경해서 반복적으로 호출해야 한다.

 

 

1.5 여러 개의 동일한 값 찾기 예시

bools = [True, False, True, False]
first = bools.index(False)         # 1
second = bools.index(False, first + 1)  # 3
  • first는 첫 번째 False의 인덱스이며,
  • second는 그 다음 False를 찾기 위해 first + 1부터 검색한 결과이다.