본문 바로가기

개발/python

Slicing

파이썬 문제를 풀거나 정보를 찾아보면 [a:b]이런식으로 있는게 있다. 찾아보니까 공부할 만 해서 적어본다.

슬라이싱(Slicing)이란 연속적인 객체들에(ex:리스트,튜플,문자열) 범위를 지정해 선택해서 객체들을 가져오는 방법 및 표기법을 의미한다. 이때 슬라이싱을 하면 새로운 객체를 생성하게 된다.

lst[start:end:step]

 

 형태는 위와 같은데 모두 양수와 음수를 가질수 있다.

start: 슬라이싱을 시작할 위치

end: 슬라이싱을 끝낼위치인데 end의 숫자는 포함하지않는다.

step: 몇개씩 끊어서 가져올지와 방향을 정한다. 생략할 경우 1단위가 된다.

양수는 객체의 제일 앞에서부터 0을 시작으로 뒤로가면서 증가하면서 번호를 매긴다.

음수는 반대로 제일 뒤에서부터 -1을 시작으로 앞으로 가며 번호를 매긴다

a = [1,2,3,4,5]

양수|0|1|2|3|4|
음수|-5|-4|-3|-2|-1|

 

기타 사용법은

a = [1,2,3,4,5,6,7]

a[1:3]		#[2,3]
a[5:]		#[6,7]
a[:5]		#[1,2,3,4,5]
a[:]		#[1,2,3,4,5,6,7]
a[5:-1]		#[6] end값 -1은 포함하지 않는다
a[::2]		#[1,3,5,7]
a[1:-1:3]	#[2,5]
a[::-1] 	#[7,6,5,4,3,2,1]
a[5:1:-2]	#[6,4]

 

슬라이싱을 사용하는 이유는 일관성,간편함,가독성,유연성,성능 등이 있는데 데이터 조작 및 가공에 매우 유용하고 슬라이싱은 매우 효울적으로 구현되어 있어서 데이터의 부분 집합을 추출할 때 빠르게 작동한다.

 

읽어주셔서 감사합니다.

'개발 > python' 카테고리의 다른 글

eval/exec  (0) 2024.05.09
백준 2753번  (0) 2024.05.08
Row String  (0) 2024.05.08
map함수  (0) 2024.05.07
colab  (0) 2024.05.03