맨체스터 사는 개발자

[Python] Slice 와 Step 본문

개발/Python

[Python] Slice 와 Step

aaamy91 2021. 11. 14. 09:07

List 나 string 에서 사용하는 기능? 같은 것 전달 받은 범위의 값을 복사하여 전달

문법은 list[n:m] = n 부터 m-1 까지 값을 복사 한다는 뜻

왜 굳이 n:m 까지를 return 안하고 m-1 까지를 리턴하는지 이해를 못하겠지만 뭐 어쩌겠나

 

list = [1,2,3,4,5]
list[1:2] 	#[2]
list[0,2] 	#[1,2]
list[:] 	#[1,2,3,4,5]
list[:2] 	#[1,2]
list[1:] 	#[2,3,4,5]
list[0:100] #[1,2,3,4,5]

그리고 Slice 에는 Step 이라는 기능도 있다. list[n:m:k] 에서 k 가 스텝인데,

n 부터 m-1 까지의 값 중 k 번째 값들을 복사 한다는 뜻이다.

k 값은 - 도 가능하다

list1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]
list1[5:15:3]
[5, 8, 11, 14]

list1[15:5:-3] 
[15, 12, 9, 6]

 

또한 slice를 이용하면 리스트를 쉽게 수정할 수도 있다.

list1
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

list1[0:3] = [99,88]
>>> list1
[99, 88, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

list1[0:3] = [11,22,33,44,55] # 범위에 넘는 리스트를 넣으면 덮어씌우기가 아니라 추가가 됨
>>> list1
[11, 22, 33, 44, 55, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

 

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

[Python] 상속과 오버로딩  (0) 2021.11.30
[Python] 클래스 메소드  (0) 2021.11.22
[Python] List 의 대표적인 기능들과 string  (0) 2021.11.12
[Python] if 문 관련해서  (0) 2021.11.12
[Python] raise  (0) 2021.11.11