slice()

Функция slice() создаёт объект-срез, который описывает диапазон индексов и шаг. Такой объект можно сохранить в переменную и переиспользовать для индексации разных последовательностей — это удобно, когда срез задаётся параметрами программы.

Сигнатура

slice(stop)
slice(start, stop[, step])

Параметры:

  • start — начальный индекс (по умолчанию None).

  • stop — индекс, до которого идёт срез, не включая.

  • step — шаг (по умолчанию None, что эквивалентно 1).

Возвращает: объект slice.

Примеры

Простой срез — то же, что [1:5]:

s = slice(1, 5)
data = ["a", "b", "c", "d", "e", "f"]
print(data[s])
['b', 'c', 'd', 'e']

Срез с шагом и обратный порядок:

nums = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
even = slice(None, None, 2)
reverse = slice(None, None, -1)
print(nums[even])
print(nums[reverse])
[0, 2, 4, 6, 8]
[9, 8, 7, 6, 5, 4, 3, 2, 1, 0]

Переиспользование среза для разных строк:

first_three = slice(0, 3)
for word in ["алгоритм", "программа", "функция"]:
    print(word[first_three])
алг
про
фун

Атрибуты start, stop, step:

s = slice(2, 10, 3)
print(s.start, s.stop, s.step)
2 10 3

Срез строки с динамической длиной:

def head(seq, n):
    return seq[slice(n)]

print(head("Алаш Электроникс", 4))
print(head([10, 20, 30, 40, 50], 2))
Алаш
[10, 20]

См. также

Примечание

Описание основано на официальной документации Python (docs.python.org), распространяемой под лицензией PSF License v2. © Python Software Foundation.