#python #anaconda #jupyter-notebook #visual-code #html #css #javascript #http

제목[re]인덱스 개념 관련 질문2022-03-22 19:25
작성자

a[start, end, step] 

- start: 시작 index

- end: 자기 자신을 포함하지 않는 끝 index

- step: slicing의 방향과 어느 간격으로 가져올지 옵션 (direction, stride)



1. step이 음수라고 해서 start와 end의 위치가 바뀌면서 거꾸로 가져오는 것이 아닙니다.

start와 end는 고정된 상태에서 step의 방향으로 step의 숫자만큼 건너뛰며 index 를 가져오는 것입니다.

그 와중에 end까지 갈 수 없다면 빈 값을 반환하게 됩니다.


아래 예시를 보시면

1-1. a[2:8:1]  >> 234567

1-2. a[2:8:-1]  >> 아무런 값이 나오지 않음

1-2의 경우에는 2부터 역방향으로 1씩 건너뛰며 index를 가져와야 하는데 end가 8입니다. index 2에서 역방향으로 가게 되면 end에서 지정한 index 8까지 갈 수가 없겠죠. 따라서 아무런 값이 나오지 않습니다. 2, 3번도 마찬가지의 개념입니다.



2. step이 음수로 설정이 되면 start와 end의 기본 설정 값, 즉 디폴트 값이 바뀌게 됩니다.

step이 양수라면 start: 0, end: -1

step이 음수라면 start: -1, end: 0

따라서 a[start, end, step]의 형태에서 start나 end값이 없을 때, 디폴트로 가져오는 값이 바뀌게 됩니다.


아래의 예시를 보시면

4-1. a[:8:-1]  >> 9

4-2. a[:-2:-1]  >> 9

둘 다 step이 음수이므로 start의 디폴트 값은 -1입니다. 따라서 index가 -1인 9부터 index가 -2, 8인 8전까지 역방향으로 slicing하면 9만 나오게 됩니다.

5번도 같은 맥락으로 end의 디폴트 값이 0으로 바뀌었기 때문에 해당 결과가 나오게 됩니다.



댓글
이전인덱스 개념 관련 질문2022-03-22
다음[re]인덱스 개념 관련 질문2022-03-22