sequence[i:j:k]
sequence
- последовательность. Могут быть list
, str
и т. д.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]