파이썬은 리스트, 문자열, 튜플 과 같은 시퀀스들이 있다. 파이썬은 슬라이싱을 통해 시퀀스를 여러 조각으로 나눌수 있다. 슬라이싱은 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]