본문 바로가기

trouble-shooting

IndexError: list index out of range

리스트 데이터의 인덱스를 벗어난 경우에 발생합니다. 간단한 예시로는 아래와 같은 경우를 들 수 있습니다.

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

list_data의 크기는 3이기 때문에 인덱스는 0, 1, 2밖에 존재하지 않는데 3이라는 인덱스에 접근했기 때문에 에러가 발생합니다.

 

주로 위와 같이 직접 코드에 값을 입력하는 경우엔 실수가 잘 발생하지 않습니다. 문제는 런타임에 결정되는 값일 경우에 함수를 잘못 짜서 발생하는 경우가 대다수 입니다. 아래와 같은 예시를 볼 수 있겠습니다.

def is_valid(list_data):
    return list_data[0] == 'valid_data'

list_data의 길이가 0보다 클 것이라고 가정하고 짜여진 함수 이기 때문에, list_data가 빈 리스트일 경우에 에러가 발생합니다.