파이썬에서 인덱스를 활용한 슬라이싱을 사용하는 경우 list[start:end]
같이 표현한다.
이 때, start 부분은 포함되지만 end 부분은 포함되지 않는다.
이에 대하여 네덜란드 컴퓨터 과학자 다익스트라는 다음과 같은 이유를 들었다.
- 범위의 맨 앞 혹은 맨 뒤 값은 반드시 포함해야 한다.
- 우선 반드시 이상/미만 혹은 초과/이하 형태여야 한다.
- 그래야 두 수의 차를 통해서 몇 개의 값이 들어있는지 직관적으로 알 수 있다.
- 그럼 그 형태가 왜 꼭 이상/미만이어야 하는가?
- 시작점이 포함되어야 하는 이유?
- 만약 자연수의 범위를 표현하고자 할 때, 초과인 경우 최소 자연수인 1을 포함시키기 위해서 0초과 n이하으로 표현해야 한다.
- 이 때, 자연수가 아닌 수를 통해서 자연수의 범위를 표현하는 부자연스러운 상황이 발생한다.
- 그렇다면 마지막 값이 포함되지 않아야 하는 이유?
- 만약 해당 범위의 값이 없는 경우를 표현하는 경우에 1 <= n <= 1 처럼 시작점이 포함된 상태에서 마지막 값이 포함되면 표현이 불가능하다.
'python' 카테고리의 다른 글
Architecture Patterns with Python(1장) (0) | 2021.10.09 |
---|---|
Fluent Python (챕터 2) (0) | 2021.10.07 |
Fluent Python (챕터1) (0) | 2021.10.06 |
ChainMap (0) | 2021.05.07 |
array 로 생성, 저장, 로딩 (0) | 2021.05.02 |