본문 바로가기
category/python

python slicing 방법

by 자운대고라니 2021. 2. 21.
반응형

안녕하세요??

자운대 고라니입니다.

 

다른 언어를 배우다가 python에 입문하신 분들은

가끔씩 list형에서 [:2] [:-1] [2:0:-1] [::2]처럼

대괄호 안에 ' : ' 기호를 이해하지 못하는 분들을 위해서 준비해봤습니다.

 

 


[] 안에 :란?

이는 python에서 'slicing'이라고 명칭 하며, 리스트 안에 있는 객체들을 편하게 추출하기 위해서

python 3.x 버전부터 만들어졌다고 합니다.

 

 

slicing 사용법

       

1. [값:]

 

1
2
3
num = [1,2,3,4,5]
print(num[1:])
 
cs

결과 : [2,3,4,5]

1
2
3
num = [1,2,3,4,5]
print(num[-1:])
 
cs

결과 : [5]

 

이걸 보면 대충 감이 오실까요?

[]에 : 를 넣는 것은 [] 안에 있는 index값만큼 범위를 쪼개서 객체를 추출하는 것입니다.

 

index값에 음수가 나와서 이건 뭐지? 하실 수 있는데, python에서는 index를 음수로 넣을 수 있습니다.

 

          [1,2,3,4,5]

index : 0,1,2,3,4

          -5,-4,-3,-2,-1

 

다른 예시도 들어보겠습니다.


2. [:값]

1
2
3
num = [1,2,3,4,5]
print(num[:3])
 
cs

결과 : [1,2,3]

1
2
3
num = [1,2,3,4,5]
print(num[:-3])
 
cs

결과 : [1,2]


3. [값:값]

1
2
3
num = [1,2,3,4,5]
print(num[1:3])
 
cs

결과 : [2,3]

1
2
3
num = [1,2,3,4,5]
print(num[-5:-2])
 
cs

결과 : [1,2,3]

위 4개 결과를 확인하시면 항상 뒤에 있는 index값의 객체는 출력되지 않는 것을 보실 수 있습니다.

진짜 쉽게 생각해서 [1:3]은 1 <= index < 3 객체들을 출력한다고 생각하면 되겠습니다.

 

그렇다면 [값:값]에서 왼쪽 값을 더 크게 잡으면 어떻게 될까요??


4. [값:값] (왼쪽이 더 클 때)

1
2
3
num = [1,2,3,4,5]
print(num[3:1])
 
cs

결과 : []

 

결과는 아무런 값도 출력되지 않습니다.

객체들이 반대로 출력될 거라 생각할 수 있는데, 이는 아래 보시는 것처럼 다른 방법으로 표현합니다.


5. [값:값:-1]

1
2
3
num = [1,2,3,4,5]
print(num[3:1:-1])
 
cs

결과 : [3,2]


6. [::값]

1
2
3
num = [1,2,3,4,5]
print(num[::2])
 
cs

결과 : [1,3,5]

이는 slicing이 아닌 step이라 표현하는데, 2칸씩 뛰어서 객체를 표현하는 방법입니다.

아래 그림을 보시면 더 쉽게 이해 가실 거예요.

7. [::-1]

1
2
3
num = [1,2,3,4,5]
print(num[::-1])
 
cs

결과 : [5,4,3,2,1]

 

[::-1]을 사용하면 index를 반대로 추출할 수 있습니다.


그리 어려운 내용은 아니지만 맨 처음 설명했듯이 처음 접하는 분들에게는

다소 보기 불편한 형식이라 생각돼서 새벽 1시에 급발진으로 글을 적어봤습니다.

읽어주셔서 감사합니다 ^^

반응형

댓글