Мне показалось, что я понял основы перебора списков в python, но получал непредвиденную ошибку при использовании отрицательного шага на срезе следующим образом:
>>> a = list(range(10))
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> a[:-1]
[0, 1, 2, 3, 4, 5, 6, 7, 8]
>>> a[::-1]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> a[:-1:-1]
[]
(Обратите внимание, что это выполняется в Python 3.5)
Почему не делается обратный шаг [: - 1: -1] через срез [: - 1] таким же образом, как и весь список с помощью [:: - 1]?
Я понимаю, что вы также можете использовать list.reverse(), но лучше понять базовую функциональность среза python.