어디까지 갈 수 있을까?

파이썬 :: 인덱스 슬라이싱에서 인덱스가 배열의 크기를 넘어버리는 경우 본문

프로그래밍/파이썬

파이썬 :: 인덱스 슬라이싱에서 인덱스가 배열의 크기를 넘어버리는 경우

_Min 2021. 4. 27. 22:35
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

 

Why does substring slicing with index out of range work?

Why doesn't 'example'[999:9999] result in error? Since 'example'[9] does, what is the motivation behind it? From this behavior I can assume that 'example'[3] is, essentially/internally, not the sa...

stackoverflow.com

인덱싱은 지정된 인덱스의 값을 return 받기 때문에 해당 인덱스의 값이 없으면 error가 나게 되지만,

인덱스 슬라이싱은 해당하는 sequence를 return 받기 때문에 해당 sequence가 없으면 빈 배열을 return받게 된다고 적혀있다.

 

 

결론은 인덱스 슬라이싱에서는 인덱스가 배열의 크기를 넘어도 오류가 나지 않게 된다.

728x90
Comments