어디까지 갈 수 있을까?
파이썬 :: 인덱스 슬라이싱에서 인덱스가 배열의 크기를 넘어버리는 경우 본문
a='aa'
print(a[0:3] + '|')
print(a[3:5] + '|')
print('|')
해당 코드를 돌릴 경우 에러가 날까?
답은 '에러가 나지 않는다' 이다
배열 a는 끝 인덱스가 1 임에도 불구하고,
a[0:3]을 부르면 aa까지만 출력되고
a[3:5]를 부르면 아무것도 출력되지 않는다
그러므로 위의 코드의 전체적인 출력값은
aa|
|
|
이 된다.
관련된 stackoverflow의 답변에서는
stackoverflow.com/questions/9490058/why-does-substring-slicing-with-index-out-of-range-work
인덱싱은 지정된 인덱스의 값을 return 받기 때문에 해당 인덱스의 값이 없으면 error가 나게 되지만,
인덱스 슬라이싱은 해당하는 sequence를 return 받기 때문에 해당 sequence가 없으면 빈 배열을 return받게 된다고 적혀있다.
결론은 인덱스 슬라이싱에서는 인덱스가 배열의 크기를 넘어도 오류가 나지 않게 된다.
728x90
'프로그래밍 > 파이썬' 카테고리의 다른 글
파이썬 TypeError: 'list' object is not callable 에러 (0) | 2021.04.27 |
---|---|
deque, heapq 차이 및 사용법 (0) | 2021.03.05 |
bisect, 이분(이진)탐색 라이브러리 사용하기 (0) | 2021.02.19 |
sys.stdin.readline 오류, input 오류 (0) | 2021.02.14 |
리스트 중복 요소 개수 찾기, 제거하기 :: 파이썬 (0) | 2021.02.08 |
Comments