알쓸코지
article thumbnail
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

https://codetorial.net/tips_and_examples/list_slicing.html

profile

알쓸코지

@chocoji

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!