본문 바로가기
프로그래밍언어/파이썬[Error]

[파이썬][Error] 046. IndexError - list index out of range in slice

by about_IT 2025. 5. 28.
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