파이썬 슬라이싱(del함수, 인덱스로 리스트 수정하기)

서현·2024년 8월 9일
0

파이썬

목록 보기
10/19

슬라이싱

슬라이싱 : 리스트 내에서 여러 개의 인덱스를 호출하는 장치

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

### 인덱스 호출
list[1] #2

text = "Hello World"
text[1] #'e'

text[1:5] #'ello'

text[5] #" "

list = ["영","일","이","삼","사","오"]
list[1:3] #"일","이"
list[1] #"일"

이와 같이 슬라이싱을 하게되면 번호에 맞는 리스트, str를 만들어 줍니다

lst1 = [44,6954,79,383]
lst2 = lst1[:] #리스트 복제

위처럼 손쉽게 리스트를 복사할 수도 있습니다

슬라이싱을 하는데 짝수 인덱스만 가져오고 싶은 경우

list1 = list(range(20))

list1[5:15:2] #5부터 15까지 2의 증감값으로 리스트를 가져옴
list1[5:15:-1] # 5부터 15까지는 +1씩 증가하기때문에 -1의 증감값을 가지면 출력될 수 없음
list1[14:4:-1] #시작 부분에 큰 수를 입력해야 -1씩 감소할 수 있음

list1[::3] #[0, 3, 6, 9, 12, 15, 18]

list[::-3] #[19, 16, 13, 10, 7, 4, 1]

silce로 리스트 수정하기

1)del 함수로 인덱스 삭제하기

del 리스트이름[인덱스]
del 함수는 취소가 불가능하니 주의해서 사용해야 합니다

2)인덱스로 인덱스값 수정하기

리스트명[시작 위치: 종료 위치 - 1]

이렇게 수정될 수 있으며, 슬라이싱보다 큰 갯수를 넣는다면 시작 인덱스에 맞춰 들어가게 됩니다


위처럼 여러 인덱스의 자리를 수정하고 싶다면
numbers[1:4]= [8]처럼 리스트의 형태로 넣어주면 수정이 완료됩니다
만약 여기서 numbers[1:4] = 8로 입력할 경우 에러가 발생됩니다

응용해본다면

list1 = [0, 1, 2, 3, 4, 5]
# list1의 1부터 3까지를 slice를 이용해서 각각 11, 22, 33으로 바꿔보세요.
# 바꾸고 나면 list1은 [0, 11, 22, 33, 4, 5]가 되어야 합니다.

list1[1:4] = [11,22,33]



list2 = [0, 1, 2, 3, 4, 5]
# list2의 1부터 3까지를 del과 slice를 이용해서 지워보세요
# 바꾸고 나면 list2은 [0, 4, 5]가 되어야 합니다.
del list2[1:4]


print("list1 : {}, list2 : {}".format(list1, list2))

출처: 프로그래머스

profile
서현이의 코드 생활 ദ്ദി ( ᵔ ᗜ ᵔ )

0개의 댓글