파이썬에서 슬라이싱할 때 주의할 점
설명
파이썬에서 문자열, 리스트 등을 인덱싱할 때 마지막 인덱스를 초과하는 인덱스를 입력할 시 아래와 같이 오류가 난다.
>>> list = [0, 1, 2, 3]
>>> list[4]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
>>> string = 'abcde'
>>> string[5]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: string index out of range
하지만 슬라이싱을 하면 오류가 나지 않고 빈 리스트를 리턴한다. 이 결과는 Numpy 배열, Tensorflow나 PyTorch의 텐서의 경우에도 마찬가지이다.
>>> list[5:7]
[]
>>> string[8:11]
''
왜 이렇게 구현되어있는지, 이걸 어떻게 응용하는지는 모르겠다. 다만 이 사실을 모르고 있으면 나처럼 버그 잡는데 엄청난 시간을 날려먹을지도 모르니 알아두자.
환경
- OS: Windows10
- Version: Python 3.9.2