[: -1] 파이썬에서
슬라이싱은 객체 시퀀스 또는 객체 또는 문자열 배열에 대해 수행할 수 있는 프로그래밍 언어의 작업입니다. 슬라이싱에서 함수와 간단한 표기법을 사용하여 데이터 구조를 슬라이싱하여 원본 데이터 구조의 하위 문자열이나 하위 시퀀스 또는 하위 배열을 얻습니다.
파이썬에서 슬라이싱
Python은 슬라이싱도 지원하는 프로그래밍 언어입니다. 파이썬에서 슬라이싱을 수행할 수 있는 방법은 주로 두 가지가 있습니다. 첫 번째는 slice()
함수를 사용하고 두 번째는 인덱싱 구문을 사용합니다.
slice()
생성자를 사용하여 Python에서 슬라이싱
슬라이스 생성자는 start
, stop
및 step
의 세 가지 인수를 허용합니다. 이 생성자는 슬라이싱 객체를 생성하여 문자열 또는 객체 시퀀스를 분할합니다.
start
: 슬라이싱이 시작되어야 하는 시작 인덱스입니다. 기본값은0
입니다.stop
: 슬라이싱이 종료되어야 하는 종료 인덱스입니다. 필수 인수입니다.step
: 슬라이싱 프로세스의 시퀀스를 반복하는 동안 취해야 하는 증분의 양입니다. 기본값은1
입니다.
이 유틸리티를 조금 더 잘 이해하기 위해 몇 가지 예를 살펴보겠습니다. Python에서 -1
은 마지막 인덱스를 나타냅니다. 그리고 인덱싱 또는 반복하는 동안 stop
인덱스는 최종 결과에서 고려되지 않습니다. 작업은 그 이전의 모든 것에 대해 수행됩니다.
s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
slices = [
slice(5),
slice(0, -1),
slice(1, -1, 2),
slice(1, 4, 1),
slice(5, -1),
slice(3, -1, 3),
slice(0, 0),
slice(-1, 0, -1),
slice(-5, 5, -3),
]
for i in range(len(slices)):
print(s[slices[i]])
for i in range(len(slices)):
print(a[slices[i]])
출력:
ABCDE
ABCDEFGHIJKLMNOPQRSTUVWXY
BDFHJLNPRTVX
BCD
FGHIJKLMNOPQRSTUVWXY
DGJMPSVY
ZYXWVUTSRQPONMLKJIHGFEDCB
VSPMJG
[1, 2, 3, 4, 5]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 4, 6, 8]
[2, 3, 4]
[6, 7, 8, 9]
[4, 7]
[]
[10, 9, 8, 7, 6, 5, 4, 3, 2]
[]
단일 값이 slice()
생성자에 전달되면 값이 stop
인덱스에 할당됩니다. 이것이 slice(5)
의 경우 ABCDE
로 출력되는 이유입니다.
인덱싱 구문을 사용하여 Python에서 슬라이싱
Python에서 slice()
생성자를 사용하여 슬라이싱 객체를 생성하는 대신 다음 구문을 사용하여 슬라이싱을 수행할 수 있습니다.
sequence[start:stop:step]
허용되는 인수는 이전 방법의 인수와 동일합니다. 정말로 변화하는 것은 그것들을 쓰는 방법입니다. start
, stop
및 step
의 기본값은 각각 0
, -1
및 1
입니다. 기본값을 사용하기 위해 인수를 건너뛸 수 있지만 콜론
을 작성해야 합니다. 좀 더 잘 이해하기 위해 인덱싱 구문의 몇 가지 예를 살펴보겠습니다.
s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(s[5])
print(s[:-1])
print(s[0:-1])
print(s[1:-1:2])
print(s[1:4:1])
print(s[5:-1])
print(s[3:-1:3])
print(s[:0])
print(s[-1:0:-1])
print(s[-5:5:-3])
print(a[5])
print(a[:-1])
print(a[0:-1])
print(a[1:-1:2])
print(a[1:4:1])
print(a[5:-1])
print(a[3:-1:3])
print(a[:0])
print(a[-1:0:-1])
print(a[-5:5:-3])
출력:
F
ABCDEFGHIJKLMNOPQRSTUVWXY
ABCDEFGHIJKLMNOPQRSTUVWXY
BDFHJLNPRTVX
BCD
FGHIJKLMNOPQRSTUVWXY
DGJMPSVY
ZYXWVUTSRQPONMLKJIHGFEDCB
VSPMJG
6
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[1, 2, 3, 4, 5, 6, 7, 8, 9]
[2, 4, 6, 8]
[2, 3, 4]
[6, 7, 8, 9]
[4, 7]
[]
[10, 9, 8, 7, 6, 5, 4, 3, 2]
[]
파이썬에서 [ : -1]
의 의미
보시다시피 이 구문은 인덱싱 구문에 속합니다. [ : -1]
은 마지막 요소를 제외한 모든 시퀀스 요소를 인쇄합니다. 이 개념을 이해하기 위해 몇 가지 예를 살펴보겠습니다.
s = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
a = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print(s[:-1])
print(a[:-1])
출력:
ABCDEFGHIJKLMNOPQRSTUVWXY
[1, 2, 3, 4, 5, 6, 7, 8, 9]