728x90
문법은 다음과 같습니다.
a[start:stop] # start 에서 stop-1까지의 요소들
a[start:] # start 에서 배열의 나머지까지 요소들
a[:stop] # 처음부터 stop - 1 까지 요소들
a[:] # 전체 배열의 복사본
step 값이라는 것이 있는 데, 위의 어떤 값들과도 사용 가능 합니다:
a[start:stop:step] # start에서 stop 까지 step으로 진행
다음은 주피터 노트북에서 돌려 보았습니다.
기억해야 할 주요점은 :stop 값이 선택한 슬라이스 안에 있지 않은 첫 번째 값을 나타낸다는 것입니다. 따라서 stop와 start의 차이는 선택한 요소의 수가 됩니다(단계가 1인 경우 기본값).
다른 특징은 start 또는 stop가 음수일 수 있다는 것입니다. 즉, 배열의 시작 부분이 아니라 끝 부분부터 계산됩니다. 그래서:
a[-1] # 배열의 마지막 요소
a[-2:] # 배열의 마지막 두 개의 요소
a[:-2] # 마지막 두 개의 요소를 제외한 모든 요소
이와 비슷하게 step 도 또한 음수 값을 가집니다:
a[::-1] # 반전 된 배열 내의 모든 요소들
a[1::-1] # 반전 된 첫 두 개의 요소
a[:-3:-1] # 반전 된 끝 두 개의 요소
a[-3::-1] # 반전 된 끝 두 개의 요소를 제외한 모든 요소
파이썬은 당신이 원한 것보다 요소가 적다면 프로그래머에게 친절합니다.
예를 들어, a[:-2]를 요청하고 a가 하나의 요소만 포함하는 경우 오류 대신 빈 목록이 표시됩니다.
때론 당신이 오류가 나는 것을 더 선호한다면, 이런 일이 발생할 수 있음을 알고 있어야 합니다.
슬라이스 개체와의 관계
슬라이스 객체는 슬라이스 연산을 표현 할 수 있습니다. 즉:
a[start:stop:step]
는 다음과 동일 합니다.
a[slice(start, stop, step)]
슬라이스 객체는 또한 range()와 유사하게 인수의 수에 따라 약간 다르게 동작합니다.
즉, slice(stop) 및 slice(start, stop[, step])를 모두 지원합니다.
주어진 인수 지정을 건너뛰려면 None을 사용할 수 있습니다.
- a[start:]는 a[slice(start, None)]과 같고
- a[::-1]은 a[slice(None, None, -1)]과 같습니다.
:-based 표기법은 단순 슬라이싱에 매우 유용하지만, 슬라이스() 객체를 명시적으로 사용하면 프로그래밍 방식의 슬라이싱 생성을 간단하게 합니다.
이상.
728x90
'프로그래밍' 카테고리의 다른 글
[MinGW ] 윈도우용 SQLCipher C에서 자바까지 - 2 (0) | 2023.03.31 |
---|---|
[MinGW ] 윈도우용 SQLCipher C에서 자바까지 (0) | 2023.03.30 |
[C#] 헥사 문자열을 Int 로 변환 (2) | 2023.03.29 |
[C#] 자바의 instance of 와 같은 비교 (0) | 2023.03.27 |
확장자에 맞도록 MIME Type 설정하기 (0) | 2023.03.26 |