Функция slice() в Python
avatar
7 | (offline)
❤️‍🔥Notehunter Developer
Добавлено:
Категория: Основы «Python»
Комментариев: 0

Python строки поддерживают функцию slice() для создания подстрок. 

Обратите внимание, что строка является неизменной, обрезка создает новую подстроку из исходной строки, в то время как исходная строка остается неизменной. 

Синтаксис:

str_object[start_pos:end_pos:step]

Нарезка начинается с индекса start_pos (стартовая позицию) и заканчивается индексом end_pos (конечная позиция). Параметр шага используется для указания шагов, которые необходимо выполнить от начала до конца индекса.

Давайте рассмотрим несколько простых примеров использования функции slice()

word = 'Hello World'

first_five_chars = word[:5]
print(first_five_chars)

third_to_fifth_chars = word[2:5]
print(third_to_fifth_chars)

Вывод:

Hello
llo

Обратите внимание, что значение индекса начинается с 0, поэтому start_pos 2 относится к третьему символу в строке.

Как перевернуть строку с помощью slice?

Мы можем перевернуть строку, используя slice(), указав значение шага как –1.

word = 'Hello World'

chars = word[::-1]
print(chars)

Вывод:

dlroW olleH

Функция slice() в Python возвращает объект среза, представляющий набор индексов, заданных диапазоном (start, stop, step).

Синтаксис функции:

class slice(stop)
class slice(start, stop[, step])

Обратите внимание, что функция slice() возвращает объект среза.

Мы можем передать этот объект как набор индексов с такими последовательностями, как строка, список, кортеж и т. д. 

Эта функция позволяет вам легко построить пошаговую последовательность без полной итерации существующей последовательности. 

Аргументы для функции 

  • start: Определяет начало значения индекса. Это необязательно, по умолчанию нет. 
  • stop: указывает конец значения индекса. Это обязательный параметр. 
  • step: определяет шаги, которые необходимо выполнить от начала до конца индекса. Это необязательный параметр, значение по умолчанию — None. Объект фрагмента в Python имеет атрибуты данных только для чтения, запуска, остановки и шага, которые возвращают значения аргументов (или значение по умолчанию). Давайте посмотрим, как создавать объекты-срезы.

Объект фрагмента в Python имеет атрибуты данных только для чтения – start, stop и step, которые возвращают значения аргументов (или значение по умолчанию). 

Давайте посмотрим, как создавать объекты-срезы.

word = slice(1, 10, 2)
print(type(word ))
print(word.start)
print(word.stop)
print(word.step)

word  = slice(5)
print(word.start)
print(word.stop)
print(word.step)

Вывод:

<class 'slice'>
1
10
2
None
5
None

Объект фрагмента не используется сам по себе, он полезен при использовании в сочетании с последовательностями для создания подпоследовательности.

Строка фрагмента 

Давайте посмотрим, как использовать функцию среза со строкой. Мы передадим объект среза как обычный индекс, чтобы получить значение подстроки из строки.

word = slice(1, 10, 2)  # indexes 1,3,5,7,9
print('abcde'[word ])

Выход: bd.

Обратите внимание, что если индексы среза превышают длину последовательности, исключение не генерируется, а данные возвращаются к максимально доступному индексу. Мы также можем передавать отрицательные значения в функцию slice()

В этом случае итерация будет выполняться в обратном направлении, т.е. с конца к началу.

word = slice(-1, -3, -1)  # indexes -1, -2
print('abcde'[word])

Выход: ed.

Список и массив фрагментов 

Давайте рассмотрим пример использования функции slice() со списком или массивом.

word = slice(0, 3)  # indexes 0, 1, 2
my_list = [1, 2, 3, 4, 5, 6]
print(my_list[word])

Результат: [1, 2, 3]

Кортеж фрагментов

Мы также можем использовать нарезку с кортежем, потому что это последовательность.

word = slice(2)
my_tuple = [1, 2, 3, 4, 5, 6]
print(my_tuple[word])

Результат: [1, 2]

Синтаксис расширенного индексирования фрагментов 

Поскольку нарезка очень популярна в числовом питоне, существует сокращенный способ создания объекта среза.

a[start:stop:step]

Давайте посмотрим на несколько примеров нарезки с использованием сокращенного подхода.

x = 'abcde'
y = x[1:3:1]  # 1,2
print(y)

y = x[1:3]  # 1,2
print(y)

y = x[2:]  # 2 to length of sequence
print(y)

y = x[:5:2]  # 0,2,4
print(y)

y = x[:]  # copy of sequence
print(y)

y = x[-1:-4:-1]  # reverse iteration, end to start
print(y)

Вывод:

bc
bc
cde
ace
abcde
edc
Теги записи: Python, Основы Python, slice(),
Комментарии к статье 0
Комментариев нет
Форма добавления комментария (необходима регистрация)