Функцията slice () връща обект на слайс, който може да се използва за нарязване на низове, списъци, кортеж и т.н.
Обектът нарязване се използва за нарязване на дадена последователност (низ, байтове, кортеж, списък или диапазон) или всеки обект, който поддържа протокол за последователност (приложения __getitem__()
и __len__()
метод).
Синтаксисът на slice()
е:
парче (старт, стоп, стъпка)
slice () Параметри
slice()
може да вземе три параметъра:
- start (по избор) - Начално цяло число, където започва нарязването на обекта. По подразбиране,
None
ако не е предоставено. - stop - Цяло число, до което се извършва нарязването. Нарязването спира на индекс стоп -1 (последен елемент) .
- стъпка (по избор) - целочислена стойност, която определя увеличението между всеки индекс за нарязване. По подразбиране,
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: Вземете подниза с помощта на обект отрязване
# 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 (старт: стоп: стъпка)
Например,
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