슬라이싱
파이썬 slicing은 "iterable한 객체" 모두를 다룰 수 있다. 따라서 리스트, 튜플, 문자열 같은 것들을 다룰 수 있다.
1. 구조 : a[start : end : step]
- start: 슬라이싱 시작위치. 주의할 것은 이때 start가 의미하는 것은 index번호이다. 따라서 a[3:5]면 3번째 숫자부터 자르는 것이 아니라, 인덱스 3부터 가져오는 것이므로 실제로는 4번째 숫자부터 슬라이싱을 한다.
- end: 슬라이싱이 끝나는 위치인데, for문의 range처럼 end는 포함하지 않기 때문에 슬라이싱은 end-1까지 잘라짐
- step: 몇개씩 끊어서 가져올지, 그리고 방향을 정한다.
- ex1. start부터 끝까지 가져오기
a[start:] - ex2. 맨 처음부터 end-1까지 가져오기
a[:end] - ex3. start부터 end-1까지 가져오기
a[start:end]
2. step이 있을 때
step이 양수(+) : 오른쪽으로 step만큼 이동하면서 가져온다.
step이 음수(-) : 왼쪽으로 step만큼 이동하면서 가져온다.
<예시>
a = ['a', 'b', 'c', 'd', 'e']
a[::2] # 처음부터 끝까지 2칸씩 이동하면서 슬라이싱
# 출력 : ['a', 'c', 'e']
a = ['a', 'b', 'c', 'd', 'e']
a[ -5 : : 3 ] # -5번째부터 시작해서 오른쪽으로 3칸씩 이동하면서 슬라이싱
# 출력 : ['a', 'd']
a = ['a', 'b', 'c', 'd', 'e']
a[3::-1 ] # 인덱스 3부터(그러므로 4번째 숫자부터) 끝까지 왼쪽으로 1칸씩 이동하며 슬라이싱
# 출력 : ['d', 'c', 'b', 'a']
# <순서만 역으로 해서 정렬할 때 자주 쓰는 표현>
a = ['a', 'b', 'c', 'd', 'e']
a[::-1] # 전체를 거꾸로 가져옵니다.
# 출력 : ['e', 'd', 'c', 'b', 'a']
'프로그래밍 문법 > Python 문법' 카테고리의 다른 글
리스트 복사 하는 방법 (0) | 2024.03.07 |
---|---|
dictionary에서 key 다루기 (0) | 2024.03.07 |
2차원 리스트 정렬하기 (0) | 2024.03.07 |
문자열 replace (1) | 2024.03.07 |
숫자인 숫자, 문자인 숫자 (0) | 2024.03.07 |