logo

파이썬 슬라이싱의 모든 것 📂프로그래밍

파이썬 슬라이싱의 모든 것

설명

파이썬에서 슬라이싱의 핵심은 대괄호 [] 내에 콜론 :을 사용하는 것이다.

data[start : stop : step]
  • start: 데이터를 잘라낼 시작 위치 (포함 O)
  • stop: 데이터를 잘라낼 종료 위치 (포함 X)
  • step: 데이터를 잘라낼 단위

즉 위의 코드를 구구절절 풀어서 설명하자면, "data[start : stop : step]이란, data내의 start번째 요소부터 stop-1번째 요소까지 step만큼씩 잘라내는 것"이다.

우선 첫째로 두번째 콜론 이후부터는 생략가능하며, 이 때는 :1으로 입력된 것과 동일하다.

data[start : stop] == data[start : stop : 1]

그리고 startstop, step 각각도 생략할 수 있어 아래의 모든 코드가 유효하다. 기본값은 start=0, stop=len(data), step=1이다.

data[start : stop : ]
data[start : : step]
data[ : stop : step]
data[start : :]
data[: stop :]
data[: : step]
data[::]
data[:]

음수 step

step에는 음수를 입력할 수도 있으며, 이 때는 startstop을 명시적으로 입력하려면, startstop보다 더 큰 수를 입력해야한다. data[::-1]와 같이 두면 전체 요소를 역순으로 가져온다.

>>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> a[::-1]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

>>> a[7:3:-1]
[7, 6, 5, 4]

>>> a[7:1:-2]
[7, 5, 3]

음수 인덱스

slice()

특정한 슬라이싱 범위가 반복해서 쓰인다면, slice()로 변수처럼 만들어둘 수 있다.

주의점

최대 인덱스를 벗어나도록 입력해도 에러가 나지 않고 가능한 영역만큼만 데이터를 잘라냄에 주의해야한다.

>>> a = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> a[0:100]
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]

>>> a[3:100]
[3, 4, 5, 6, 7, 8, 9]