728x90
IndexError: list index out of range
는 리스트의 인덱싱 또는 슬라이싱 과정에서 범위를 벗어난 인덱스에 접근할 때 발생합니다. 특히 슬라이싱에서는 이 오류가 덜 발생하지만, 슬라이싱 시작 또는 종료 위치를 직접 참조하면서 범위를 벗어나면 예외가 발생할 수 있습니다.
리스트 슬라이싱은 일반적으로 오류 없이 작동하지만, 특정 조건문 또는 루프에서 잘못된 범위로 슬라이싱을 시도하면 이 오류가 발생할 수 있습니다.
● 오류 발생 예시
lst = [1, 2, 3]
slice_part = lst[5:10]
이 코드는 오류를 발생시키지 않지만, 만약 슬라이스 범위를 기준으로 다른 인덱스를 직접 접근하려고 하면 오류가 발생할 수 있습니다:
start = 5
if lst[start]: # 이 경우 IndexError 발생
● 주요 원인
- 리스트의 길이를 초과한 범위로 슬라이싱 시도
- 슬라이싱 결과가 빈 리스트인데, 이를 바로 인덱싱
- 변수로 슬라이싱 범위를 설정할 때 조건 검사를 생략한 경우
● 해결 방법
- 슬라이싱 전에 리스트 길이 확인
- 슬라이싱 결과가 빈 리스트인지 확인한 후 인덱싱
- 조건문 또는 루프 내에서 슬라이싱 범위를 유효한 인덱스로 제한
● 예시 코드 (정상 처리)
lst = [1, 2, 3]
start = 5
if start < len(lst):
print(lst[start:])
else:
print([])
● 결론
슬라이싱은 오류를 덜 발생시키는 안전한 인덱싱 방식이지만, 범위 외 인덱스를 조건 없이 사용할 경우 여전히 예외가 발생할 수 있습니다. 슬라이스 전후의 인덱스 접근에는 항상 유효성 검사를 병행하는 것이 중요합니다.
728x90
'프로그래밍언어 > 파이썬[Error]' 카테고리의 다른 글
[파이썬][Error] 048. AttributeError - 'int' object has no attribute 'append' (0) | 2025.05.28 |
---|---|
[파이썬][Error] 047. AttributeError - 'NoneType' object has no attribute 'upper' (0) | 2025.05.28 |
[파이썬][Error] 045. IndexError - tuple index out of range (0) | 2025.05.28 |
[파이썬][Error] 044. KeyError - 'key' when using dict[key] (0) | 2025.05.28 |
[파이썬][Error] 041. IndexError - list index out of range (0) | 2025.05.28 |