все Python 3Встроенные типыпонятие
slice
срезы
Встроенный тип объекта среза: slice(start, stop, step). Создаётся неявно синтаксисом a[start:stop:step] и передаётся в __getitem__.
Синтаксис
slice(start, stop, step)
Напрямую создавать slice нужно редко: он полезен, когда один и тот же срез переиспользуется под именем в нескольких местах, или когда вы пишете свой __getitem__ и разбираете, что пришло — целый индекс или объект среза. Как и у range, один аргумент означает stop, а не start: slice(5) это start=None, stop=5. Реальные границы под конкретную длину даёт метод indices(): s.indices(len(seq)) вернёт готовую тройку с учётом None и отрицательных значений.
Примеры
s = slice(1, 5, 2)
print((s.start, s.stop, s.step)) # → (1, 5, 2)
print('abcdefgh'[s]) # → bd
print([0, 1, 2, 3, 4][slice(2, 4)]) # → [2, 3]
print('abcdef'[slice(None, None, -1)]) # → fedcba
print(slice(5).indices(3)) # → (0, 3, 1)
См. также
Открыть в полном глоссарииdocs.python.orgСообщить о неточности