[Python] 리스트에 없는 인덱스 번호로 인덱싱과 슬라이싱할 경우

요시롱·2023년 8월 18일
0

개념 정리

목록 보기
2/2
post-thumbnail

오타를 수정하려다가, 인덱스 에러가 발생하지 않는 것을 보고 새롭게 알게 되었다.

test_list = [1, 2, 3]

num1 = test_list[3]     
print(num1)              # 인덱스 에러 발생
num2 = test_list[3:]     
print(num2)              # [] (에러 발생하지 않음)

이는 인덱싱은 지정한 인덱스에 해당하는 리스트의 요소를 반환하고, 슬라이싱은 해당 위치의 sequence(리스트, 문자열, 튜플 등의 연속적으로 조회 가능한 자료형)를 반환하기 때문이다.

즉, 반환하는 내용이 다르다.

위 예시처럼 인덱스 번호를 3으로 지정할 경우,

  • 인덱싱에서는 해당하는 리스트의 요소가 없기 때문에 반환할 값이 없어 IndexError가 발생하며,
  • 슬라이싱에서는 해당 위치에 요소가 없어 빈 시퀀스([])를 반환하고, 별도의 에러는 발생하지 않는다.

0개의 댓글