English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
функция slice() возвращает объект slice(), который можно использовать для срезания строк, списков, множеств и т.д.
Объект slice() используется для срезания данных из заданной последовательности (строки,байты,множество,списокилиОбласть) или любое объект, поддерживающее протокол последовательности (реализует методы __getitem__() и __len__()).
Синтаксис slice():
slice(start, stop, step)
slice() может принимать три параметра:
start (необязательный) - целочисленный, определяющий начальный индекс среза объекта. Если не указано, то по умолчанию None.
stop- целочисленный, до которого происходит срез. Срез начинается с индексаstop-1 (последний элемент)местоКонец.
step (необязательный) - целочисленный значение, определяющее шаг при срезании индексов. Если не указано, то по умолчанию None.
# включает индексы (0, 1, 2) result1 = slice(3) print(result1) # включает индексы (1, 3) result2 = slice(1, 5, 2) print(slice(1, 5, 2))
Результат вывода
slice(None, 3, None) slice(1, 5, 2)
Здесь result1 и result2 — это объекты среза.
Теперь, когда мы了解了 объект среза, давайте посмотрим, как можно получить подстроку, подмассив, подмножество и т.д. из объекта среза.
# программа получает подстроку из заданной строки py_string = 'Python' # stop = 3 # включает индексы 0, 1 и 2 slice_object = slice(3) print(py_string[slice_object]) # Pyt # start = 1, stop = 6, step = 2 # включает индексы 1, 3 и 5 slice_object = slice(1, 6, 2) print(py_string[slice_object]) # yhn
Результат вывода
Pyt yhn
py_string = 'Python' # start = -1, stop = -4, step = -1 # Включает индексы -1, -2 и -3 slice_object = slice(-1, -4, -1) print(py_string[slice_object]) # noh
Результат вывода
noh
py_list = ['P', 'y', 't', 'h', 'o', 'n'] py_tuple = ('P', 'y', 't', 'h', 'o', 'n') # Включает индексы 0, 1 и 2 slice_object = slice(3) print(py_list[slice_object]) # ['P', 'y', 't'] # Включает индексы 1 и 3 slice_object = slice(1, 5, 2) print(py_tuple[slice_object]) # ('y', 'h')
Результат вывода
['P', 'y', 't'] ('y', 'h')
py_list = ['P', 'y', 't', 'h', 'o', 'n'] py_tuple = ('P', 'y', 't', 'h', 'o', 'n') # Включает индексы -1, -2 и -3 slice_object = slice(-1, -4, -1) print(py_list[slice_object]) # ['n', 'o', 'h'] # Включает индексы -1 и -3 slice_object = slice(-1, -5, -2) print(py_tuple[slice_object]) # ('n', 'h')
Результат вывода
['n', 'o', 'h'] ('n', 'h')
Объекты slice можно заменить синтаксисом индексации Python.
Вы можете交替но использовать следующие синтаксисы для нарезки:
obj[start:stop:step]
Например:
py_string = 'Python' # Включает индексы 0, 1 и 2 print(py_string[0:3]) # Pyt # Включает индексы 1 и 3 print(py_string[1:5:2]) # yh
Результат вывода
Pyt yh