Сообщить об ошибке.

Получение среза с заданным шагом sequence[i:j:k] в Python

Получение части последовательности с заданным шагом

Синтаксис:

sequence[i:j:k]

Параметры:

Результат:

  • новая последовательность того-же типа

Описание:

Операция позволяет получить срез/часть последовательности от индекса i до индекса j с шагом k.

Результатом будет срез/часть последовательности sequence от индекса i до индекса j с шагом k. Операцию еще называют "получить срез с заданным шагом". Дополнительно смотрите встроенную функцию slice()

Индексирование последовательностей всегда начинается с 0.

Если индексы i и j отрицательны, то индексы будут считаться относительно конца последовательности sequence. В этом случае положительные индексы можно посчитать по формулам len(sequence) - i и len(sequence) - j. Обратите внимание, что -0 по-прежнему будет 0.

Срез последовательности sequence по индексам от i до j с шагом k определяется как последовательность элементов с индексами x = i + n*k таким, что 0 <= n < (j-i)/k. Другими словами, индексы i, i+k, i+2*k, i+3*k и так далее, остановятся при достижении j, но никогда не включая j.

  • Если шаг k положительный, то индексы i и j сводятся к len(sequence), т. е. считаются с начала.
  • Если шаг k отрицательный, то индексы i и j сводятся к len(sequence) - 1, т. е. считаются с конца.
  • Если индексы i или j опущены или отсутствуют, они становятся "конечными" значениями, конец которых зависит от шага k.
  • Обратите внимание, что шаг k не может быть нулем. Если шага k нет, то он рассматривается как k = 1.

Эта операция поддерживаются большинством типов последовательностей, как изменяемых, так и неизменяемых.

Примечание: Множества set и frozenset не поддерживает индексирование элементов, т.к. это неупорядоченная коллекция без повторяющихся элементов.

Также читайте:

Примеры получения среза с заданным шагом.

>>> x = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
>>> x[::]
# [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
>>> x[::-1]
# [14, 13, 12, 11, 10, 9, 8, 7, 6, 5, 4, 3, 2, 1, 0]
>>> x[::2]
# [0, 2, 4, 6, 8, 10, 12, 14]
>>> x[::-2]
# [14, 12, 10, 8, 6, 4, 2, 0]
>>> x[5::1]
# [5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
>>> x[:5:1]
# [0, 1, 2, 3, 4]
>>> x[-2::-2]
# [13, 11, 9, 7, 5, 3, 1]
>>> x[:12:2]
# [0, 2, 4, 6, 8, 10]
>>> x[:12:-2]
# [14]
>>> x[:-12:-2]
# [14, 12, 10, 8, 6, 4]
>>> x[2:12:2]
# [2, 4, 6, 8, 10]
>>> x[6:-12:-2]
# [6, 4]
>>> x[-1:-5:-1]
# [14, 13, 12, 11]