python의 슬라이싱을 이용하면 데이터를 조각 내어 부분 데이터를 손쉽게 얻을 수 있다!
슬라이싱에 대해 알아보고 사용법까지 익혀보자.
슬라이싱(slicing)이란?
- 연속적인 객체들(리스트, 튜플, 문자열 등)을 범위 지정으로 선택해서 객체들을 가져오는 방법
- 실행 결과 새로운 객체를 생성한다.
Syntax
시퀀스[start:stop:step]
Parameter Values
- 각 값들은 양수, 음수 모두 가질 수 있다.
인덱스 범위
data = ['a', 'b', 'c', 'd', 'e']
위와 같은 리스트 객체 `data`가 있다고 할 때, 인덱스 범위는 다음과 같다.
슬라이싱 사용하기
시작, 끝 지점 사용하기
my_list = [1, 2, 3, 4, 5, 6, 7, 8]
print(my_list[3:]) # my_list[3:len(my_list):1]와 같다 => [4, 5, 6, 7, 8]
print(my_list[:5]) # my_list[0:5:1]와 같다 => [1, 2, 3, 4, 5]
print(my_list[2:6]) # [3, 4, 5, 6]
음의 인덱스 사용하기
my_list = [1, 2, 3, 4, 5, 6, 7, 8]
print(my_list[:-2]) # my_list[0:-2:1]와 같다 => [1, 2, 3, 4, 5, 6] (끝에서 두 개 제외)
print(my_list[-4:]) # my_list[-4:len(my_list):1]와 같다 => [5, 6, 7, 8]
print(my_list[-5:-2]) # my_list[-5:-2:1]와 같다 => [4, 5, 6]
리스트 복사하기
my_list = [1, 2, 3, 4, 5, 6, 7, 8]
print(my_list[:]) # my_list[0:len(my_list):1]와 같다 -> [1, 2, 3, 4, 5, 6, 7, 8]
시작 인덱스와 끝 인덱스를 생략하고 `:`을 사용할 경우, 리스트의 모든 요소라는 뜻이다.
=> 리스트의 모든 값을 복사한 새로운 리스트를 생성한다.
간격 사용하기
my_list = [1, 2, 3, 4, 5, 6, 7, 8]
print(my_list[::2]) # [1, 3, 5, 7] -> 간격: 2
print(my_list[::3]) # [1, 4, 7] -> 간격: 3
시작, 끝, 간격 사용하기
my_list = [1, 2, 3, 4, 5, 6, 7, 8]
print(my_list[1::2]) # [2, 4, 6, 8]
print(my_list[1::3]) # [2, 5, 8]
print(my_list[2:6:2]) # [3, 5]
음의 간격 사용하기
my_list = [1, 2, 3, 4, 5, 6, 7, 8]
print(my_list[::-1]) # [8, 7, 6, 5, 4, 3, 2, 1]
print(my_list[::-2]) # [8, 6, 4, 2]
print(my_list[::-3]) # [8, 5, 2]
Ref
https://twpower.github.io/119-python-list-slicing-examples
https://good.oopy.io/clean-code/index-and-slice#0844d559-326a-48fc-8534-ac0fb5dacb16
'Language > Python' 카테고리의 다른 글
[Basic] Python 2차원 리스트의 최댓값, 최솟값 구하기 (0) | 2023.06.27 |
---|---|
[Math] 올림, 내림, 버림, 반올림 함수 (0) | 2023.06.22 |
[String] Python 문자열 메소드 정리 (0) | 2023.06.15 |
[Basic] Python으로 입출력하기 (1) | 2023.06.13 |