Что на самом деле делает расширенный синтаксис среза для отрицательных шагов? [Дубликат]
На этот вопрос уже есть ответ здесь:
Понимание обозначения среза 31 ответРасширенный синтаксис слайса в python был объяснен мне как "".a[n:m:k] returns every kth element from n to m
Это дает мне хорошее представление о том, чего ожидать, когда k положительно. Но я'Я заблудился о том, как интерпретироватьa[n:m:k]
для отрицательного к. я знаю этоa[::-1]
переворачивает, и чтоa[::-k]
берет когда-либо k-й элемент обратного.
Но как это обобщение определения для k положительного? Я'хотел бы знать, какa[n:m:k]
на самом деле определяется, так что (например) я могу понять, почему:
"abcd"[-1:0:-1] = "dcb"
Являетсяa[n:m:-k]
поменять местами последовательность a, затем взять элементы с исходными индексами, начиная с n и заканчивая одним перед m или чем-то? Я нене думаю, потому что эта модель неt соответствуют другим значениям n и m I 'мы пробовали Но я'Я не могу понять, как это на самом деле определяется, и поиск ни к чему не привел.