Python Glossary English

все 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Сообщить о неточности