파이썬은 리스트, 문자열, 튜플 과 같은 시퀀스들이 있다.
파이썬은 슬라이싱을 통해 시퀀스를 여러 조각으로 나눌수 있다.
슬라이싱은 sequence[1:4]
과 같은 형태로 나타낼 수 있는데 이때 1은 포함이고
4는 포함하지 않는 범위 [1, 4)
이다.
리스트를 슬라이싱한 결과는 새로운 리스트이다.
a = [1,2,3,4,5]
b = a[:]
assert a == b and a is not b
하지만 시작과 끝 인덱스가 없는 슬라이스에 대입한 하면 새 리스트를 만들어내지 않고 슬라이스가 참조하는 리스트의 내용을 대입하는 리스트의 복사본으로 덮어쓴다.
a = b
a[:] = [1,2,3]
assert a is b
스트라이딩 sequence[::2]
를 한 다음 슬라이싱을 하면 테이터를 한 번 더 얕게복사하게 된다.
x = [1,2,3,4,5,6,7,8,9]
y = x[::2] # [1,3,5,7,9]
z = y[1:-1] # [3,5,7]