[python] slice 슬라이스

유얌얌·2024년 7월 3일

알고리즘

목록 보기
6/25

슬라이스

slice : 객체의 일부를 잘라내기
일부를 잘라서 새 리스트를 만듦

리스트 슬라이스

a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
a[0:4]     
# [0, 10, 20, 30]
a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
a[1:1]    
# []  오류가 나는 것이 아니라 빈 리스트를 만듦

◾ 음수로 인덱스 지정
-1 인덱스는 뒤에서 첫번째

a[4:-1]
# [40, 50, 60, 70, 80]
# 뒤에서 두번째까지인 80까지 가져옴

◾ 인덱스 증가폭

a[3:8:2]
# [30, 50, 70]
# 인덱스를 2씩 증가시키면서 가져옴

◾ 인덱스 생략

a[:8:2]
# [0, 20, 40, 60]
# 처음부터 인덱스 7까지 인덱스를 2씩 증가시키면서 가져옴

a[:]
# [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
# 다 가져옴

◾ 뒤에서부터 가져오기

a[5:2:-1]
# [30, 50, 70]
# 인덱스를 2씩 증가시키면서 가져옴

요소 할당하기(list만 가능)

값을 할당할 수 있음
원래 있던 리스트가 변경됌

a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
a[1:4] = ['a', 'b', 'c']
# [0, 'a', 'b', 'c', 40, 50, 60, 70, 80, 90]

◾ 갯수가 맞지않아도 괜찮음

a[1:4] = ['a']
# [0, 'a', 40, 50, 60, 70, 80, 90]
a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
a[2:5] = ['a', 'b', 'c', 'd', 'e'] 
# [0, 10, 'a', 'b', 'c', 'd', 'e', 50, 60, 70, 80, 90]

삭제하기(list만 가능)

del : 요소를 삭제할 수 있음
원래 있던 리스트가 변경되는 것!!

a = [0, 10, 20, 30, 40, 50, 60, 70, 80, 90]
del a[1:4]
# [0, 40, 50, 60, 70, 80, 90]

슬라이스(할당, 삭제)는 문자열, 튜플, range도 가능!

profile
조금씩이라도 꾸준하게

0개의 댓글