Я предполагаю, что ваш logi c для печати кода [2, 1, 9, 8, 7, 6, 5, 4, 3] начинается с первого индекса (2), затем уменьшается чтобы напечатать 0-й индекс (1). Затем он устанавливает индекс на последний (индекс 8, который равен 9) и возвращается оттуда. Итак:
1 -> 0 -> 8 -> 7 -> ... -> 3
Однако, что происходит при разрезании списка, индекс останавливается на 0. т.е. никогда выходит за пределы длины списка или 0. Таким образом, это выглядит примерно так:
1 -> 0
Если вы хотите напечатать [2, 1, 9, 8, 7, 6, 5, 4, 3], используя нарезку списка, следующий код должен работать:
print(a[1::-1] + a[:1:-1])
Здесь мы добавляем два списка, которые go из индекса 1-0 и из последний индекс списка до 1