Функція slice () повертає об'єкт slice, який можна використовувати для нарізки рядків, списків, кортежу тощо.
Об'єкт зрізу використовується для нарізання заданої послідовності (рядок, байти, кортеж, список або діапазон) або будь-якого об'єкта, що підтримує протокол послідовності (реалізації __getitem__()
та __len__()
метод).
Синтаксис slice()
:
фрагмент (запуск, зупинка, крок)
slice () Параметри
slice()
може приймати три параметри:
- start (необов’язково) - Початкове ціле число, де починається нарізання об’єкта. За замовчуванням,
None
якщо не надано. - stop - Ціле число, до якого відбувається нарізка. Нарізка зупиняється на індексі -1 (останній елемент) .
- step (необов’язково) - ціле число, яке визначає приріст між кожним індексом для нарізки. За замовчуванням,
None
якщо не вказано.
Приклад 1: Створіть об’єкт зрізу для нарізки
# contains indices (0, 1, 2) result1 = slice(3) print(result1) # contains indices (1, 3) result2 = slice(1, 5, 2) print(slice(1, 5, 2))
Вихідні дані
фрагмент (немає, 3, немає) фрагмент (1, 5, 2)
Тут result1
і result2
є зрізні об'єкти.
Тепер ми знаємо про об'єкти зрізу, давайте подивимося, як ми можемо отримати підрядок, під-список, під-кортеж тощо з об'єктів зрізу.
Приклад 2: Отримати підрядок за допомогою об’єкта slice
# Program to get a substring from the given string py_string = 'Python' # stop = 3 # contains 0, 1 and 2 indices slice_object = slice(3) print(py_string(slice_object)) # Pyt # start = 1, stop = 6, step = 2 # contains 1, 3 and 5 indices slice_object = slice(1, 6, 2) print(py_string(slice_object)) # yhn
Вихідні дані
Pyt yhn
Приклад 3: Отримати підрядок, використовуючи від’ємний індекс
py_string = 'Python' # start = -1, stop = -4, step = -1 # contains indices -1, -2 and -3 slice_object = slice(-1, -4, -1) print(py_string(slice_object)) # noh
Вихідні дані
ні
Приклад 4: Отримайте підсписок і підкорпус
py_list = ('P', 'y', 't', 'h', 'o', 'n') py_tuple = ('P', 'y', 't', 'h', 'o', 'n') # contains indices 0, 1 and 2 slice_object = slice(3) print(py_list(slice_object)) # ('P', 'y', 't') # contains indices 1 and 3 slice_object = slice(1, 5, 2) print(py_tuple(slice_object)) # ('y', 'h')
Вихідні дані
('P', 'y', 't') ('y', 'h')
Приклад 5: Отримайте підсписок та підкорпус, використовуючи негативний індекс
py_list = ('P', 'y', 't', 'h', 'o', 'n') py_tuple = ('P', 'y', 't', 'h', 'o', 'n') # contains indices -1, -2 and -3 slice_object = slice(-1, -4, -1) print(py_list(slice_object)) # ('n', 'o', 'h') # contains indices -1 and -3 slice_object = slice(-1, -5, -2) print(py_tuple(slice_object)) # ('n', 'h')
Вихідні дані
('n', 'o', 'h') ('n', 'h')
Приклад 6: Використання синтаксису індексування для нарізки
Об'єкт зрізу можна замінити синтаксисом індексації в Python.
Ви можете по черзі використовувати наступний синтаксис для нарізки:
obj (start: stop: step)
Наприклад,
py_string = 'Python' # contains indices 0, 1 and 2 print(py_string(0:3)) # Pyt # contains indices 1 and 3 print(py_string(1:5:2)) # yh
Вихідні дані
Pyt yh