SlideShare a Scribd company logo
널널한 교수의 기초 파이썬
14_4. 슬라이싱
창원대학교 정보통신공학과 박동규
동영상 강의자료와 코드
• 동영상 강의(널널한 교수의 기초 파이썬)
• https://www.youtube.com/watch?
v=TK6RLGaM3Ao&list=PL2P1Vm9k53HOEn-QYXAfblQWkR0OW9mKX
• 소스코드( GitHub )
• https://github.com/dongupak/Basic-Python-Programming
슬라이싱
>>> text = "hello world"

>>> text[1:5]

‘ello’

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

>>> list[1:5]

[1, 2, 3, 4]

>>> list[1:] # 두번째 원소부터 마지막 원소까지

[1, 2, 3, 4, 5, 6, 7, 8, 9]
• slicing : 리스트나 튜플, 문자열의 항목을 잘라서 일부만을 가져오는
기능

• list[시작 : 끝] 과 같이 시작항목과 끝 항목의 인덱스를 지정한다. 시
작 항목은 포함되지만 끝 항목은 포함되지 않는다.
슬라이싱
a[start:end:step] # start through not past end, by step
a[start:end] # items start through end-1
a[start:] # items start through the rest of the array
a[:end] # items from the beginning through end-1
a[:] # a copy of the whole array
a[-1] # last item in the array
a[-2:] # last two items in the array
a[:-2] # everything except the last two items
a[::-1] # all items in the array, reversed
a[1::-1] # the first two items, reversed
a[:-3:-1] # the last two items, reversed
a[-3::-1] # everything except the last two items, reversed
출처 : https://stackoverflow.com/questions/509211/understanding-pythons-slice-notation
list 0 1 2 3 4 5 6 7 8 9
list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9]
list[1:5]
결과 : [1, 2, 3, 4]
시작 항목 list[1]부터 list[5-1]
사이의 항목을 모두 가져온다. (list[5]를 포함하지 않음)
슬라이싱
list 0 1 2 3 4 5 6 7 8 9
list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9]
list[1:]
결과 : [1, 2, 3, 4, 5, 6, 7, 8, 9]
슬라이싱(인덱스 생략)
마지막 항목의 인덱스를 생략하면
리스트의 마지막 항목까지 모두 가져온다
list 0 1 2 3 4 5 6 7 8 9
list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9]
list[:]
결과 : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
슬라이싱(인덱스 생략)
시작과 마지막 항목의 인덱스를 생략하면
디폴트로 모든 항목을 가져온다
list 0 1 2 3 4 5 6 7 8 9
list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9]
list[-9:-2]
결과 : [1, 2, 3, 4, 5, 6, 7]
슬라이싱(음수 인덱스)
음수 인덱스 -9부터 인덱스 -3까지의
항목을 다 가져온다 (list[-2]를 포함하지 않음)
음수인덱스 -1-2-3-4-5-6-7-8-9-10
list 0 1 2 3 4 5 6 7 8 9
list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9]
list[-9:]
결과 : [1, 2, 3, 4, 5, 6, 7, 8, 9]
슬라이싱(음수 인덱스)
음수 인덱스 -9부터 마지막까지의
항목을 모두 가져온다
음수인덱스 -1-2-3-4-5-6-7-8-9-10
list 0 1 2 3 4 5 6 7 8 9
list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9]
list[:-2]
결과 : [0, 1, 2, 3, 4, 5, 6, 7]
슬라이싱(음수 인덱스)
마지막 2개를 제외한 모든 항목들
음수인덱스 -1-2-3-4-5-6-7-8-9-10
list 0 1 2 3 4 5 6 7 8 9
list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9]
list[-2:]
결과 : [8,9]
슬라이싱(음수 인덱스)
음수인덱스 -1-2-3-4-5-6-7-8-9-10
비교 : list[:-2]의 결과 [0, 1, 2, 3, 4, 5, 6, 7]
비교
list[:-2] + list[-2:] 의 결과는 list[:] 와 같다

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
list[-2:] + list[:-2] 의 결과는 list[:] 와 같지 않다

[8, 9, 0, 1, 2, 3, 4, 5, 6, 7]
0 1 2 3 4 5 6 7 8 9
list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9]
list
list[0:10:3]
결과 : [0, 3, 6, 9]
슬라이싱(스텝)
스텝값 3을 주면 3칸씩 건너뛰면서
항목을 가져온다
0 1 2 3 4 5 6 7 8 9
list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9]
list
list[0:9:3]
결과 : [0, 3, 6]
슬라이싱(스텝)
스텝값 3을 주면 3칸씩 건너뛰면서
항목을 가져온다. 이때 list[9]를 포함하지 않음
0 1 2 3 4 5 6 7 8 9
list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9]
list
list[::-1]
결과 : [9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
슬라이싱(음수 스텝)
음수인덱스 -1-2-3-4-5-6-7-8-9-10
스텝 혹은 스트라이드(stride) 값이 음수일 경우
시작 항목은 마지막 항목이며 끝 항목은 첫번째 항목이 됨
0 1 2 3 4 5 6 7 8 9
list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9]
list
list[:-2:-1]
결과 : [9]
슬라이싱(음수 스텝)
음수인덱스 -1-2-3-4-5-6-7-8-9-10
제일 마지막에서 시작해서 list[-1] 항목까지
꺼꾸로 스텝 값을 증가시키면서 가져옴
(list[-2]를 포함하지 않으며, 직전원소인 list[-1]까지 슬라이싱)
0 1 2 3 4 5 6 7 8 9
list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9]
list
list[-2:-5:-1]
결과 : [8, 7, 6]
슬라이싱(음수 스텝)
음수인덱스 -1-2-3-4-5-6-7-8-9-10
스텝 값이 -(음수)이므로 뒤에서부터 가져옴
시작 인덱스는 list[-2], 끝 인덱스는 list[-4]
(list[-5]는 포함하지 않음)
0 1 2 3 4 5 6 7 8 9
list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9]
list
list[-5:-2:-1]
결과 : [ ]
슬라이싱(음수 스텝)
음수인덱스 -1-2-3-4-5-6-7-8-9-10
스텝 값이 -(음수)이므로 뒤에서부터 가져옴
이때 시작 인덱스가 끝 인덱스의 앞에 있으므로
가져올 원소가 없음
0 1 2 3 4 5 6 7 8 9
list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9]
list
list[::-3]
결과 : [9, 6, 3, 0]
슬라이싱(음수 스텝)
음수인덱스 -1-2-3-4-5-6-7-8-9-10
스텝값에 음수가 있을 경우 디폴트로
시작이 마지막 항목, 끝이 첫번째 항목
0 1 2 3 4 5 6 7 8 9
list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9]
list
list[-2::-3]
결과 : [8, 5, 2]
슬라이싱(음수 스텝)
음수인덱스 -1-2-3-4-5-6-7-8-9-10
스텝값이-3인 경우 시작항목 인덱스 -2에서
꺼꾸로 스텝값을 증가시킴
튜플과 스트링 슬라이싱
• 튜플이나 스트링 역시 리스트와 동일한 방식으로 슬라이싱이 가능하다
감사합니다

More Related Content

What's hot

R 기본-데이타형 소개
R 기본-데이타형 소개R 기본-데이타형 소개
R 기본-데이타형 소개
Terry Cho
 
R 스터디 네번째
R 스터디 네번째R 스터디 네번째
R 스터디 네번째
Jaeseok Park
 
R 프로그래밍-향상된 데이타 조작
R 프로그래밍-향상된 데이타 조작R 프로그래밍-향상된 데이타 조작
R 프로그래밍-향상된 데이타 조작
Terry Cho
 
[SOPT] 데이터 구조 및 알고리즘 스터디 - #01 : 개요, 점근적 복잡도, 배열, 연결리스트
[SOPT] 데이터 구조 및 알고리즘 스터디 - #01 : 개요, 점근적 복잡도, 배열, 연결리스트[SOPT] 데이터 구조 및 알고리즘 스터디 - #01 : 개요, 점근적 복잡도, 배열, 연결리스트
[SOPT] 데이터 구조 및 알고리즘 스터디 - #01 : 개요, 점근적 복잡도, 배열, 연결리스트
S.O.P.T - Shout Our Passion Together
 
[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산
[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산
[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산
S.O.P.T - Shout Our Passion Together
 
[SOPT] 데이터 구조 및 알고리즘 스터디 - #03 : 정렬 (기본, 효율, 초효율
[SOPT] 데이터 구조 및 알고리즘 스터디 - #03 : 정렬 (기본, 효율, 초효율[SOPT] 데이터 구조 및 알고리즘 스터디 - #03 : 정렬 (기본, 효율, 초효율
[SOPT] 데이터 구조 및 알고리즘 스터디 - #03 : 정렬 (기본, 효율, 초효율
S.O.P.T - Shout Our Passion Together
 
R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1
happychallenge
 
Data Mining with R CH1 요약
Data Mining with R CH1 요약Data Mining with R CH1 요약
Data Mining with R CH1 요약
Sung Yub Kim
 
R 스터디 두번째
R 스터디 두번째R 스터디 두번째
R 스터디 두번째
Jaeseok Park
 
R 스터디 세번째
R 스터디 세번째R 스터디 세번째
R 스터디 세번째
Jaeseok Park
 
[SOPT] 데이터 구조 및 알고리즘 스터디 - #04 : 트리 기초, 이진 트리, 우선순위 큐
[SOPT] 데이터 구조 및 알고리즘 스터디 - #04 : 트리 기초, 이진 트리, 우선순위 큐[SOPT] 데이터 구조 및 알고리즘 스터디 - #04 : 트리 기초, 이진 트리, 우선순위 큐
[SOPT] 데이터 구조 및 알고리즘 스터디 - #04 : 트리 기초, 이진 트리, 우선순위 큐
S.O.P.T - Shout Our Passion Together
 
[SOPT] 데이터 구조 및 알고리즘 스터디 - #05 : AVL 트리
[SOPT] 데이터 구조 및 알고리즘 스터디 - #05 : AVL 트리[SOPT] 데이터 구조 및 알고리즘 스터디 - #05 : AVL 트리
[SOPT] 데이터 구조 및 알고리즘 스터디 - #05 : AVL 트리
S.O.P.T - Shout Our Passion Together
 
R 기초 : R Basics
R 기초 : R BasicsR 기초 : R Basics
R 기초 : R Basics
Yoonwhan Lee
 
12 1. multi-dimensional array
12 1. multi-dimensional array12 1. multi-dimensional array
12 1. multi-dimensional array웅식 전
 
이산치수학 Project7
이산치수학 Project7이산치수학 Project7
이산치수학 Project7KoChungWook
 
11. array & pointer
11. array & pointer11. array & pointer
11. array & pointer웅식 전
 
[Swift] Data Structure - Binary Search Tree
[Swift] Data Structure - Binary Search Tree[Swift] Data Structure - Binary Search Tree
[Swift] Data Structure - Binary Search Tree
Bill Kim
 
연결 리스트(기초)
연결 리스트(기초)연결 리스트(기초)
연결 리스트(기초)
Lee Geonhee
 

What's hot (19)

R 기본-데이타형 소개
R 기본-데이타형 소개R 기본-데이타형 소개
R 기본-데이타형 소개
 
R 스터디 네번째
R 스터디 네번째R 스터디 네번째
R 스터디 네번째
 
R 프로그래밍-향상된 데이타 조작
R 프로그래밍-향상된 데이타 조작R 프로그래밍-향상된 데이타 조작
R 프로그래밍-향상된 데이타 조작
 
[SOPT] 데이터 구조 및 알고리즘 스터디 - #01 : 개요, 점근적 복잡도, 배열, 연결리스트
[SOPT] 데이터 구조 및 알고리즘 스터디 - #01 : 개요, 점근적 복잡도, 배열, 연결리스트[SOPT] 데이터 구조 및 알고리즘 스터디 - #01 : 개요, 점근적 복잡도, 배열, 연결리스트
[SOPT] 데이터 구조 및 알고리즘 스터디 - #01 : 개요, 점근적 복잡도, 배열, 연결리스트
 
[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산
[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산
[SOPT] 데이터 구조 및 알고리즘 스터디 - #02 : 스택, 큐, 수식 연산
 
[SOPT] 데이터 구조 및 알고리즘 스터디 - #03 : 정렬 (기본, 효율, 초효율
[SOPT] 데이터 구조 및 알고리즘 스터디 - #03 : 정렬 (기본, 효율, 초효율[SOPT] 데이터 구조 및 알고리즘 스터디 - #03 : 정렬 (기본, 효율, 초효율
[SOPT] 데이터 구조 및 알고리즘 스터디 - #03 : 정렬 (기본, 효율, 초효율
 
R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1R 프로그램의 이해와 활용 v1.1
R 프로그램의 이해와 활용 v1.1
 
Data Mining with R CH1 요약
Data Mining with R CH1 요약Data Mining with R CH1 요약
Data Mining with R CH1 요약
 
R 스터디 두번째
R 스터디 두번째R 스터디 두번째
R 스터디 두번째
 
R 스터디 세번째
R 스터디 세번째R 스터디 세번째
R 스터디 세번째
 
[SOPT] 데이터 구조 및 알고리즘 스터디 - #04 : 트리 기초, 이진 트리, 우선순위 큐
[SOPT] 데이터 구조 및 알고리즘 스터디 - #04 : 트리 기초, 이진 트리, 우선순위 큐[SOPT] 데이터 구조 및 알고리즘 스터디 - #04 : 트리 기초, 이진 트리, 우선순위 큐
[SOPT] 데이터 구조 및 알고리즘 스터디 - #04 : 트리 기초, 이진 트리, 우선순위 큐
 
[SOPT] 데이터 구조 및 알고리즘 스터디 - #05 : AVL 트리
[SOPT] 데이터 구조 및 알고리즘 스터디 - #05 : AVL 트리[SOPT] 데이터 구조 및 알고리즘 스터디 - #05 : AVL 트리
[SOPT] 데이터 구조 및 알고리즘 스터디 - #05 : AVL 트리
 
R 기초 : R Basics
R 기초 : R BasicsR 기초 : R Basics
R 기초 : R Basics
 
12 1. multi-dimensional array
12 1. multi-dimensional array12 1. multi-dimensional array
12 1. multi-dimensional array
 
이산치수학 Project7
이산치수학 Project7이산치수학 Project7
이산치수학 Project7
 
11. array & pointer
11. array & pointer11. array & pointer
11. array & pointer
 
[Swift] Data Structure - Binary Search Tree
[Swift] Data Structure - Binary Search Tree[Swift] Data Structure - Binary Search Tree
[Swift] Data Structure - Binary Search Tree
 
R intro
R introR intro
R intro
 
연결 리스트(기초)
연결 리스트(기초)연결 리스트(기초)
연결 리스트(기초)
 

Similar to 14 4 슬라이싱

IPython
IPythonIPython
IPython
Kyunghoon Kim
 
[Algorithm] Quick Sort
[Algorithm] Quick Sort[Algorithm] Quick Sort
[Algorithm] Quick Sort
Bill Kim
 
Pyconkr2019 features for using python like matlab
Pyconkr2019 features for using python like matlabPyconkr2019 features for using python like matlab
Pyconkr2019 features for using python like matlab
Intae Cho
 
Python 활용: 이미지 처리와 데이터 분석
Python 활용: 이미지 처리와 데이터 분석Python 활용: 이미지 처리와 데이터 분석
Python 활용: 이미지 처리와 데이터 분석
용 최
 
From MSSQL to MySQL
From MSSQL to MySQLFrom MSSQL to MySQL
From MSSQL to MySQL
I Goo Lee
 
2시간만에 자바 데이터처리를 쉽게 배우고 싶어요.
2시간만에  자바 데이터처리를 쉽게 배우고 싶어요.2시간만에  자바 데이터처리를 쉽게 배우고 싶어요.
2시간만에 자바 데이터처리를 쉽게 배우고 싶어요.
Kenu, GwangNam Heo
 
[Swift] Data Structure - Graph(BFS)
[Swift] Data Structure - Graph(BFS)[Swift] Data Structure - Graph(BFS)
[Swift] Data Structure - Graph(BFS)
Bill Kim
 
파이썬2.7 기초 공부한 것 정리
파이썬2.7 기초 공부한 것 정리파이썬2.7 기초 공부한 것 정리
파이썬2.7 기초 공부한 것 정리
Booseol Shin
 
[Algorithm] Counting Sort
[Algorithm] Counting Sort[Algorithm] Counting Sort
[Algorithm] Counting Sort
Bill Kim
 
파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)
SK(주) C&C - 강병호
 
Python datatype
Python datatypePython datatype
Python datatype
건희 김
 

Similar to 14 4 슬라이싱 (11)

IPython
IPythonIPython
IPython
 
[Algorithm] Quick Sort
[Algorithm] Quick Sort[Algorithm] Quick Sort
[Algorithm] Quick Sort
 
Pyconkr2019 features for using python like matlab
Pyconkr2019 features for using python like matlabPyconkr2019 features for using python like matlab
Pyconkr2019 features for using python like matlab
 
Python 활용: 이미지 처리와 데이터 분석
Python 활용: 이미지 처리와 데이터 분석Python 활용: 이미지 처리와 데이터 분석
Python 활용: 이미지 처리와 데이터 분석
 
From MSSQL to MySQL
From MSSQL to MySQLFrom MSSQL to MySQL
From MSSQL to MySQL
 
2시간만에 자바 데이터처리를 쉽게 배우고 싶어요.
2시간만에  자바 데이터처리를 쉽게 배우고 싶어요.2시간만에  자바 데이터처리를 쉽게 배우고 싶어요.
2시간만에 자바 데이터처리를 쉽게 배우고 싶어요.
 
[Swift] Data Structure - Graph(BFS)
[Swift] Data Structure - Graph(BFS)[Swift] Data Structure - Graph(BFS)
[Swift] Data Structure - Graph(BFS)
 
파이썬2.7 기초 공부한 것 정리
파이썬2.7 기초 공부한 것 정리파이썬2.7 기초 공부한 것 정리
파이썬2.7 기초 공부한 것 정리
 
[Algorithm] Counting Sort
[Algorithm] Counting Sort[Algorithm] Counting Sort
[Algorithm] Counting Sort
 
파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)파이썬 데이터 분석 (18년)
파이썬 데이터 분석 (18년)
 
Python datatype
Python datatypePython datatype
Python datatype
 

More from Changwon National University

생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf
Changwon National University
 
2011 app center Changwon National Univ.
2011 app center Changwon National Univ.2011 app center Changwon National Univ.
2011 app center Changwon National Univ.
Changwon National University
 
인공지능의 파도가 온다
인공지능의 파도가 온다인공지능의 파도가 온다
인공지능의 파도가 온다
Changwon National University
 
Mobile Healthcare Application
Mobile Healthcare ApplicationMobile Healthcare Application
Mobile Healthcare Application
Changwon National University
 
바다 즐기기
바다 즐기기바다 즐기기
알아두면 편리한 macOS 에디터 단축키와 기능
알아두면 편리한 macOS 에디터  단축키와 기능알아두면 편리한 macOS 에디터  단축키와 기능
알아두면 편리한 macOS 에디터 단축키와 기능
Changwon National University
 
키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)
Changwon National University
 
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
Changwon National University
 
20 2 강의를 마치며
20 2 강의를 마치며20 2 강의를 마치며
20 2 강의를 마치며
Changwon National University
 
20 1 코딩스타일
20 1 코딩스타일20 1 코딩스타일
20 1 코딩스타일
Changwon National University
 
18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리
Changwon National University
 
18 1 파이썬패키지
18 1 파이썬패키지18 1 파이썬패키지
18 1 파이썬패키지
Changwon National University
 
17 2 필터함수와 맵함수
17 2 필터함수와 맵함수17 2 필터함수와 맵함수
17 2 필터함수와 맵함수
Changwon National University
 
17 1 람다함수
17 1 람다함수17 1 람다함수
17 1 람다함수
Changwon National University
 
16 1 상속과super()
16 1 상속과super()16 1 상속과super()
16 1 상속과super()
Changwon National University
 
15 2 클래스정의와self
15 2 클래스정의와self15 2 클래스정의와self
15 2 클래스정의와self
Changwon National University
 
14 2 iterator
14 2 iterator14 2 iterator
14 3 리스트함수
14 3 리스트함수14 3 리스트함수
14 3 리스트함수
Changwon National University
 
14 1 리스트의 메소드
14 1 리스트의 메소드14 1 리스트의 메소드
14 1 리스트의 메소드
Changwon National University
 
12 3 raise문
12 3 raise문12 3 raise문

More from Changwon National University (20)

생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf생성인공지능둘러보기.pdf
생성인공지능둘러보기.pdf
 
2011 app center Changwon National Univ.
2011 app center Changwon National Univ.2011 app center Changwon National Univ.
2011 app center Changwon National Univ.
 
인공지능의 파도가 온다
인공지능의 파도가 온다인공지능의 파도가 온다
인공지능의 파도가 온다
 
Mobile Healthcare Application
Mobile Healthcare ApplicationMobile Healthcare Application
Mobile Healthcare Application
 
바다 즐기기
바다 즐기기바다 즐기기
바다 즐기기
 
알아두면 편리한 macOS 에디터 단축키와 기능
알아두면 편리한 macOS 에디터  단축키와 기능알아두면 편리한 macOS 에디터  단축키와 기능
알아두면 편리한 macOS 에디터 단축키와 기능
 
키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)키보드 기호의 이름 알아보기(한국어, 영어)
키보드 기호의 이름 알아보기(한국어, 영어)
 
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
AI 로봇 아티스트의 비밀(창원대학교 정보통신공학과 특강)
 
20 2 강의를 마치며
20 2 강의를 마치며20 2 강의를 마치며
20 2 강의를 마치며
 
20 1 코딩스타일
20 1 코딩스타일20 1 코딩스타일
20 1 코딩스타일
 
18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리18 2 파이썬표준라이브러리
18 2 파이썬표준라이브러리
 
18 1 파이썬패키지
18 1 파이썬패키지18 1 파이썬패키지
18 1 파이썬패키지
 
17 2 필터함수와 맵함수
17 2 필터함수와 맵함수17 2 필터함수와 맵함수
17 2 필터함수와 맵함수
 
17 1 람다함수
17 1 람다함수17 1 람다함수
17 1 람다함수
 
16 1 상속과super()
16 1 상속과super()16 1 상속과super()
16 1 상속과super()
 
15 2 클래스정의와self
15 2 클래스정의와self15 2 클래스정의와self
15 2 클래스정의와self
 
14 2 iterator
14 2 iterator14 2 iterator
14 2 iterator
 
14 3 리스트함수
14 3 리스트함수14 3 리스트함수
14 3 리스트함수
 
14 1 리스트의 메소드
14 1 리스트의 메소드14 1 리스트의 메소드
14 1 리스트의 메소드
 
12 3 raise문
12 3 raise문12 3 raise문
12 3 raise문
 

14 4 슬라이싱

  • 1. 널널한 교수의 기초 파이썬 14_4. 슬라이싱 창원대학교 정보통신공학과 박동규
  • 2. 동영상 강의자료와 코드 • 동영상 강의(널널한 교수의 기초 파이썬) • https://www.youtube.com/watch? v=TK6RLGaM3Ao&list=PL2P1Vm9k53HOEn-QYXAfblQWkR0OW9mKX • 소스코드( GitHub ) • https://github.com/dongupak/Basic-Python-Programming
  • 3. 슬라이싱 >>> text = "hello world" >>> text[1:5] ‘ello’ >>> list = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] >>> list[1:5] [1, 2, 3, 4] >>> list[1:] # 두번째 원소부터 마지막 원소까지 [1, 2, 3, 4, 5, 6, 7, 8, 9] • slicing : 리스트나 튜플, 문자열의 항목을 잘라서 일부만을 가져오는 기능 • list[시작 : 끝] 과 같이 시작항목과 끝 항목의 인덱스를 지정한다. 시 작 항목은 포함되지만 끝 항목은 포함되지 않는다.
  • 4. 슬라이싱 a[start:end:step] # start through not past end, by step a[start:end] # items start through end-1 a[start:] # items start through the rest of the array a[:end] # items from the beginning through end-1 a[:] # a copy of the whole array a[-1] # last item in the array a[-2:] # last two items in the array a[:-2] # everything except the last two items a[::-1] # all items in the array, reversed a[1::-1] # the first two items, reversed a[:-3:-1] # the last two items, reversed a[-3::-1] # everything except the last two items, reversed 출처 : https://stackoverflow.com/questions/509211/understanding-pythons-slice-notation
  • 5. list 0 1 2 3 4 5 6 7 8 9 list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9] list[1:5] 결과 : [1, 2, 3, 4] 시작 항목 list[1]부터 list[5-1] 사이의 항목을 모두 가져온다. (list[5]를 포함하지 않음) 슬라이싱
  • 6. list 0 1 2 3 4 5 6 7 8 9 list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9] list[1:] 결과 : [1, 2, 3, 4, 5, 6, 7, 8, 9] 슬라이싱(인덱스 생략) 마지막 항목의 인덱스를 생략하면 리스트의 마지막 항목까지 모두 가져온다
  • 7. list 0 1 2 3 4 5 6 7 8 9 list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9] list[:] 결과 : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] 슬라이싱(인덱스 생략) 시작과 마지막 항목의 인덱스를 생략하면 디폴트로 모든 항목을 가져온다
  • 8. list 0 1 2 3 4 5 6 7 8 9 list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9] list[-9:-2] 결과 : [1, 2, 3, 4, 5, 6, 7] 슬라이싱(음수 인덱스) 음수 인덱스 -9부터 인덱스 -3까지의 항목을 다 가져온다 (list[-2]를 포함하지 않음) 음수인덱스 -1-2-3-4-5-6-7-8-9-10
  • 9. list 0 1 2 3 4 5 6 7 8 9 list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9] list[-9:] 결과 : [1, 2, 3, 4, 5, 6, 7, 8, 9] 슬라이싱(음수 인덱스) 음수 인덱스 -9부터 마지막까지의 항목을 모두 가져온다 음수인덱스 -1-2-3-4-5-6-7-8-9-10
  • 10. list 0 1 2 3 4 5 6 7 8 9 list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9] list[:-2] 결과 : [0, 1, 2, 3, 4, 5, 6, 7] 슬라이싱(음수 인덱스) 마지막 2개를 제외한 모든 항목들 음수인덱스 -1-2-3-4-5-6-7-8-9-10
  • 11. list 0 1 2 3 4 5 6 7 8 9 list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9] list[-2:] 결과 : [8,9] 슬라이싱(음수 인덱스) 음수인덱스 -1-2-3-4-5-6-7-8-9-10 비교 : list[:-2]의 결과 [0, 1, 2, 3, 4, 5, 6, 7]
  • 12. 비교 list[:-2] + list[-2:] 의 결과는 list[:] 와 같다 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] list[-2:] + list[:-2] 의 결과는 list[:] 와 같지 않다 [8, 9, 0, 1, 2, 3, 4, 5, 6, 7]
  • 13. 0 1 2 3 4 5 6 7 8 9 list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9] list list[0:10:3] 결과 : [0, 3, 6, 9] 슬라이싱(스텝) 스텝값 3을 주면 3칸씩 건너뛰면서 항목을 가져온다
  • 14. 0 1 2 3 4 5 6 7 8 9 list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9] list list[0:9:3] 결과 : [0, 3, 6] 슬라이싱(스텝) 스텝값 3을 주면 3칸씩 건너뛰면서 항목을 가져온다. 이때 list[9]를 포함하지 않음
  • 15. 0 1 2 3 4 5 6 7 8 9 list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9] list list[::-1] 결과 : [9, 8, 7, 6, 5, 4, 3, 2, 1, 0] 슬라이싱(음수 스텝) 음수인덱스 -1-2-3-4-5-6-7-8-9-10 스텝 혹은 스트라이드(stride) 값이 음수일 경우 시작 항목은 마지막 항목이며 끝 항목은 첫번째 항목이 됨
  • 16. 0 1 2 3 4 5 6 7 8 9 list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9] list list[:-2:-1] 결과 : [9] 슬라이싱(음수 스텝) 음수인덱스 -1-2-3-4-5-6-7-8-9-10 제일 마지막에서 시작해서 list[-1] 항목까지 꺼꾸로 스텝 값을 증가시키면서 가져옴 (list[-2]를 포함하지 않으며, 직전원소인 list[-1]까지 슬라이싱)
  • 17. 0 1 2 3 4 5 6 7 8 9 list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9] list list[-2:-5:-1] 결과 : [8, 7, 6] 슬라이싱(음수 스텝) 음수인덱스 -1-2-3-4-5-6-7-8-9-10 스텝 값이 -(음수)이므로 뒤에서부터 가져옴 시작 인덱스는 list[-2], 끝 인덱스는 list[-4] (list[-5]는 포함하지 않음)
  • 18. 0 1 2 3 4 5 6 7 8 9 list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9] list list[-5:-2:-1] 결과 : [ ] 슬라이싱(음수 스텝) 음수인덱스 -1-2-3-4-5-6-7-8-9-10 스텝 값이 -(음수)이므로 뒤에서부터 가져옴 이때 시작 인덱스가 끝 인덱스의 앞에 있으므로 가져올 원소가 없음
  • 19. 0 1 2 3 4 5 6 7 8 9 list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9] list list[::-3] 결과 : [9, 6, 3, 0] 슬라이싱(음수 스텝) 음수인덱스 -1-2-3-4-5-6-7-8-9-10 스텝값에 음수가 있을 경우 디폴트로 시작이 마지막 항목, 끝이 첫번째 항목
  • 20. 0 1 2 3 4 5 6 7 8 9 list[0] list[1] list[2] list[3] list[4] list[5] list[6] list[7] list[8] list[9] list list[-2::-3] 결과 : [8, 5, 2] 슬라이싱(음수 스텝) 음수인덱스 -1-2-3-4-5-6-7-8-9-10 스텝값이-3인 경우 시작항목 인덱스 -2에서 꺼꾸로 스텝값을 증가시킴
  • 21. 튜플과 스트링 슬라이싱 • 튜플이나 스트링 역시 리스트와 동일한 방식으로 슬라이싱이 가능하다
  • 22.