Зріз Python ()

Функція 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 

Цікаві статті...