... foo [6 : 0 : -1]이 전체 목록을 인쇄하지 않는 이유는 무엇입니까?
중간 값은 포함이 아닌 독점 중지 값이기 때문입니다. 간격 표기 [기동, 정지)된다.
이것이 바로 [x] range의 작동 방식입니다.
>>> range(6, 0, -1)
[6, 5, 4, 3, 2, 1]
그것들은 결과 목록에 포함되는 인덱스이며 첫 번째 항목에는 0이 포함되지 않습니다.
>>> range(6, -1, -1)
[6, 5, 4, 3, 2, 1, 0]
그것을 보는 또 다른 방법은 다음과 같습니다.
>>> L = ['red', 'white', 'blue', 1, 2, 3]
>>> L[0:6:1]
['red', 'white', 'blue', 1, 2, 3]
>>> len(L)
6
>>> L[5]
3
>>> L[6]
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
IndexError: list index out of range
인덱스 6은 L에 대한 유효한 인덱스를 넘어서 (정확히 한 과거), 범위에서 제외 된 중지 값으로 제외됩니다.
>>> range(0, 6, 1)
[0, 1, 2, 3, 4, 5]
여전히 목록의 각 항목에 대한 색인을 제공합니다.
foo[7:None:-1]
가능성 도 참고하십시오 :)