안녕하세요??
자운대 고라니입니다.
다른 언어를 배우다가 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칸씩 뛰어서 객체를 표현하는 방법입니다.
아래 그림을 보시면 더 쉽게 이해 가실 거예요.
![](https://blog.kakaocdn.net/dn/pecBz/btqXZJf5W4H/Uzkg8KcQNxKh4oi92ojaJ0/img.png)
7. [::-1]
1
2
3
|
num = [1,2,3,4,5]
print(num[::-1])
|
cs |
결과 : [5,4,3,2,1]
[::-1]을 사용하면 index를 반대로 추출할 수 있습니다.
그리 어려운 내용은 아니지만 맨 처음 설명했듯이 처음 접하는 분들에게는
다소 보기 불편한 형식이라 생각돼서 새벽 1시에 급발진으로 글을 적어봤습니다.
읽어주셔서 감사합니다 ^^
'category > python' 카테고리의 다른 글
visual studio code kivi 설치 (1) | 2023.05.04 |
---|---|
chatGPT를 활용한 티스토리 썸네일 자동 업로드 with python(미완성) (1) | 2023.02.21 |
python web scraping - google image (PyQt) (0) | 2021.07.06 |
python web scraping (0) | 2021.02.27 |
python 모듈 만들기 (0) | 2021.02.26 |
댓글