본문 바로가기
파이썬

[Python] IndexError: list index out of range 오류를 해결하는 방법

by JJONY 2025. 3. 26.
반응형

Python을 사용하다 보면 리스트(list) 자료형을 다룰 때 'IndexError: list index out of range'라는 오류를 자주 접하게 됩니다. 이 오류는 리스트의 인덱스 범위를 벗어난 값을 접근하려고 할 때 발생합니다. 이번 포스팅에서는 IndexError의 원인과 이를 해결하는 방법을 자세히 설명하겠습니다.


1. 오류 또는 코드 설명

오류 메시지 예시

아래와 같은 코드에서 오류가 발생할 수 있습니다:

my_list = [1, 2, 3]
print(my_list[3])

실행 결과:

IndexError: list index out of range

리스트 'my_list'는 0, 1, 2의 인덱스까지만 존재하지만, 코드에서 3번 인덱스를 호출하려 했기 때문에 오류가 발생합니다.


2. 원인 분석

IndexError: list index out of range의 발생 원인

  1. 리스트의 길이를 잘못 계산한 경우: 루프 또는 인덱싱 시 리스트의 길이보다 큰 값을 접근하려 할 때 발생.
  2. 빈 리스트에 접근하려고 할 때: 리스트가 비어 있는데 요소를 접근하려 할 때 발생.
  3. 잘못된 인덱스 사용: 음수 인덱싱을 잘못 사용하거나 범위를 초과하여 접근할 때 발생.

3. 해결 방법

1) 인덱스 범위 확인하기

리스트의 길이를 확인하여 접근할 수 있는 인덱스를 확인합니다.

my_list = [1, 2, 3]
index = 3

if index < len(my_list):
    print(my_list[index])
else:
    print('인덱스가 리스트의 범위를 벗어났습니다.')

2) try-except 블록 사용하기

예외 처리를 사용하여 오류 발생 시 안전하게 처리합니다.

try:
    print(my_list[3])
except IndexError:
    print('인덱스 범위를 벗어났습니다.')

3) 음수 인덱싱 사용 시 주의하기

음수 인덱싱은 리스트의 마지막 요소부터 접근할 때 사용됩니다. 잘못된 값을 사용하지 않도록 주의합니다.

my_list = [1, 2, 3]
print(my_list[-1])  # 출력: 3

4) 루프 사용 시 인덱스 범위 확인하기

루프를 사용할 때는 리스트의 길이를 확인하며 접근합니다.

for i in range(len(my_list)):
    print(my_list[i])

4. 추가 팁 및 참고 사항

  • 리스트의 길이를 확인할 때는 'len()' 함수를 사용하세요.
  • 음수 인덱싱을 사용할 때는 범위를 벗어나지 않도록 주의하세요.
  • 예외 처리를 통해 코드의 안전성을 높이는 습관을 가지세요.

5. 요약 및 마무리

이번 포스팅에서는 Python의 'IndexError: list index out of range' 오류의 원인과 해결 방법을 알아보았습니다. 인덱스를 잘못 지정하거나 리스트의 길이를 넘어서 접근할 때 발생하는 오류로, 예외 처리와 인덱스 검사를 통해 쉽게 해결할 수 있습니다. 코드를 작성할 때 항상 인덱스 범위를 확인하는 습관을 가지세요.


6. 관련 글 링크

  • 관련 글: Python에서 TypeError: 'int' object is not iterable 오류 해결하기
반응형

댓글