list slicing
리스트의 일부분을 잘라 copy할 수 있는 기능
syntax
list_name[시작 인덱스 : 끝 인덱스]
index(양) 0 1 2 3 4 5
car = ["sedan", "SUV", "Sportscar", "truck", "bus", "limousine"]
index(음) -6 -5 -4 -3 -2 -1
car[1:4] = ["SUV", "Sportcar", "truck"]
- 슬라이스 할 리스트를 위와 같이 호출하면 시작 인덱스이상, 끝 인덱스 미만의 element들이 리턴된다
- 슬라이스 된 리스트는 원래 객체를 modify하지 않고 새로운 객체로 리턴된다
advanced
slicing step
list_name[시작 인덱스 : 끝 인덱스 : step]
car[0:5:2] = ["sedan", "Sportscar", "bus"]
- 시작 인덱스와 끝 인덱스 사이를 step만큼 건너뛰어 copy한다
slicing from end, to end
list_name[시작 인덱스 : 끝 인덱스 : step]
car[3:] = ["truck", "bus", "limousine"]
car[:3] = ["sedan", "SUV", "Sportscar"]
- 인덱스를 표기하지 않으면 각각 마지막까지, 처음부터 슬라이스 한다
negative indexing
인덱스의 모든 element는 양의 index값과 동시에 음의 index값또한 갖는다
그러므로
car[1:4] = car[-5:-2]
car[3:] = car[-3:]
car[:3] = car[:-3]
또한 reverse indexing도 가능하다
car[::-1] = ['limousine', 'bus', 'truck', 'Sportscar', 'SUV', 'sedan']