슬라이싱 : 리스트 내에서 여러 개의 인덱스를 호출하는 장치
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]
del 리스트이름[인덱스]
del 함수는 취소가 불가능하니 주의해서 사용해야 합니다
리스트명[시작 위치: 종료 위치 - 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))