그렇다면 2::2는 무슨 뜻일까? 그리고 -2::-2, -2:2:-2, 2:2:-2 사이에는 어떤 차이가 있을까?
x[2::2] # ['c', 'e', 'g'] x[-2::-2] # ['g', 'e', 'c', 'a'] x[-2:2:-2] # ['g', 'e'] x[2:2:-2] # []
중요한 점은 슬라이싱 구문에 스트라이딩까지 들어가면 아주 혼란스럽다는 것이다. 각괄호 안에 수가 세 개나 들어 있으면 코드 밀도가 너무 높아서 읽기 어렵다. 게다가 증가값에 따라 시작값과 끝값이 어떤 역할을 하는지 불분명하다. 특히 증가값이 음수인 경우는 더 그렇다.
이런 문제를 방지하기 위해 시작값이나 끝값을 증가값과 함께 사용하지 말 것을 권한다. 증가값을 사용해야 하는 경우에는 양수값으로 만들고 시작과 끝 인덱스를 생략하라. 시작이나 끝 인덱스와 함께 증가값을 사용해야 한다면 스트라이딩한 결과를 변수에 대입한 다음 슬라이싱하라.
y = x[::2] # ['a', 'c', 'e', 'g'] z = y[1:-1] # ['c', 'e']