Функція slice() повертає об’єкт зрізу, який використовується для зрізу будь-якої послідовності (рядка, кортежу, списку, діапазону). Наприклад:
|
1 2 3 4 5 |
text = 'Python Programing' # Отримуємо об'єкт зрізу sliced_text = slice(6) print(text[sliced_text]) |
Результат:
Python
Синтаксис функції slice()
|
1 |
slice(start, stop, step) |
Параметри функції slice()
Функція slice() може приймати три параметри:
start (не обов’язково) — початкове ціле число, з якого починається зріз об’єкта. За замовчуванням використовується значення None;
stop — ціле число, до якого відбувається зріз. Зріз зупиняється на індексі stop - 1 (останній елемент);
step (не обов’язково) — крок між індексами для зрізу. За замовчуванням використовується значення None.
Значення, яке повертає функція slice()
Функція slice() повертає об’єкт зрізу.
Примітка: Ми можемо використовувати зріз із будь-яким об’єктом, який підтримує протокол послідовності (реалізує методи __getitem__() та __len__()).
Приклад №1: Створення об’єкта зрізу
|
1 2 3 4 5 6 7 |
# Містить індекси (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 є об’єктами зрізу.
Приклад №2: Отримання підрядка через об’єкт зрізу
|
1 2 3 4 5 6 7 8 9 10 11 12 13 |
# Програма для отримання підрядка із заданого рядка py_string = 'Python' # stop = 3 # Містить індекси 0, 1 та 2 slice_object = slice(3) print(py_string[slice_object]) # start = 1, stop = 6, step = 2 # Містить індекси 1, 3 та 5 slice_object = slice(1, 6, 2) print(py_string[slice_object]) |
Результат:
Pyt
yhn
Приклад №3: Отримання підрядка за допомогою від’ємного індексу
|
1 2 3 4 5 6 7 |
py_string = 'Python' # start = -1, stop = -4, step = -1 # Містить індекси -1, -2 та -3 slice_object = slice(-1, -4, -1) print(py_string[slice_object]) |
Результат:
noh
Приклад №4: Отримання підсписку та підкортежу
|
1 2 3 4 5 6 7 8 9 10 |
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]) # Містить індекси 1 та 3 slice_object = slice(1, 5, 2) print(py_tuple[slice_object]) |
Результат:
['P', 'y', 't']
('y', 'h')
Приклад №5: Отримання підсписку та підкортежу за допомогою від’ємного індексу
|
1 2 3 4 5 6 7 8 9 10 |
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]) # Містить індекси -1 та -3 slice_object = slice(-1, -5, -2) print(py_tuple[slice_object]) |
Результат:
['n', 'o', 'h']
('n', 'h')
Приклад №6: Використання індексування для зрізу
Об’єкт зрізу можна замінити синтаксисом індексування в Python. В якості альтернативи ми можемо використати наступний синтаксис для виконання зрізу:
|
1 |
obj[start:stop:step] |
Наприклад:
|
1 2 3 4 5 6 7 |
py_string = 'Python' # Містить індекси 0, 1 та 2 print(py_string[0:3]) # Містить індекси 1 та 3 print(py_string[1:5:2]) |
Результат:
Pyt
yhn


(3 оцінок, середня: 3,67 з 5)