В моём проекте по анализу данных мне нужно было разбить строки на части, а именно извлечь доменные части URL-адресов из набора данных. Для этого я применил метод нарезки, используя оператор нарезки в Python.

Нарезка строк — это процесс извлечения подстроки из исходной строки. В Python есть два способа выполнить нарезку: с помощью оператора нарезки, который обозначается двоеточием внутри квадратных скобок, или с помощью функции slicing().

Этот метод широко используется в области анализа и обработки данных. Давайте рассмотрим, как выполнить нарезку строк в Python.

С использованием оператора нарезки

Как я уже говорил, вы можете разрезать строку, используя двоеточие ‘:’ в квадратных скобках[]. Полный синтаксис приведен ниже.

str[start:stop:step]

Где:

  • start: Начальный индекс, с которого начинается срез. Символ, с которого начинается нарезка. Если этот параметр опущен, то по умолчанию нарезка начинается с начала.
  • stop: конечный индекс, где останавливается срез. Это персонаж, на котором нарезка заканчивается. Но этот символ не включается в операцию нарезки.
  • step: это необязательный аргумент, определяющий приращение между каждым индексом для нарезки.

Теперь вы знакомы с операторами среза; Возьмем простой пример, где у вас есть строка «Я живу в Соединенных Штатах».

str = 'I live in the United States'

Предположим, вы хотите выделить или удалить часть строки «Я живу». Сначала вам нужно подсчитать количество символов, включая пробелы (рассматривайте пробел как символ), в той части строки, которую вы хотите выделить. В данном случае это 6 символов.

Важно помнить, что отсчёт индексов начинается с нуля. Это означает, что первый символ в строке имеет индекс 0, второй — индекс 1 и так далее.

В слове «Я живу» шесть символов, поэтому индексы будут изменяться от 0 до 5. Однако если вы хотите получить полную подстроку «Я живу», вам нужно указать индексы от 0 до 6.

Например, чтобы получить подстроку «Я живу» из строки, вы можете использовать следующий код:

print(str[0:6])

С использованием оператора Slicing

Посмотрите на результат. Программа успешно извлекла подстроку «Я живу», используя индексы от 0 до 6.

Код выше начинает нарезку с 0-го индекса и доходит до 6-го. Можно было бы записать это и так.

print(str[:6])

Итак, и str[0:6], и str[:6] содержат одинаковое начало с индекса 0. Теперь вы хотите получить подстроку «жизнь», начиная с определённого индекса.

В этом случае вам нужно указать начальный индекс 3. В строке «Я живу» один символ — это буква «Я», а второй — пробел после неё.

В строке «I live in the United States» буква «l» в слове «live» находится в индексе 2. Поэтому, чтобы извлечь слово «life», мы должны указать индексы от 2 до 6.

print(str[2:6])

Нарезка строк в Python с использованием оператора нарезки из определенного индекса

И снова он извлёк то, что нужно, — слово «жизнь». Вот как вы можете использовать начальный и конечный параметры с двоеточием, чтобы разрезать строку на определённые части.

Но есть ещё один параметр — «шаг». Шаг определяет размер нарезки. Если вы установите шаг равным 2, то он будет начинаться с индекса 0, пропускать символ с индексом 1, брать символ с индексом 2, снова пропускать символ с индексом 3 и так далее.

В целом, все шаги — это количество символов, которые вы хотите пропустить при разрезании строки. Пропущенный символ не будет включён в окончательную подстроку.

Например, вы хотите снова извлечь подстроку «Живу», но пропустить один символ. Чтобы понять это, выполните следующий код:

print(str[0:6:2])

Нарезка строк в Python с использованием оператора нарезки по определенному размеру шага

Обратите внимание, что индексация начинается с нуля, поэтому буква «Я» имеет индекс 0. Затем мы пропускаем символ с индексом 1 (пробел), переходим к индексу 2, чтобы включить букву «l», пропускаем индекс 3 (букву «i»), включаем индекс 4 (букву «v») и, наконец, пропускаем индекс 5 (букву «е»).

Из вывода видно, что мы получили строку «Ilv». Если вам интересно узнать больше, поиграйтесь с параметрами: начало, конец и шаг. Так вы лучше поймёте, как работает операция нарезки.

Вы проделали большую работу, чтобы научиться выполнять разрезы строк с помощью двоеточия «:», находящегося внутри квадратных скобок. Но за ваш труд есть награда: вы можете указать отрицательный индекс, чтобы извлекать подстроки в обратном направлении от конца строки.

Это означает, что если вы хотите начать обрезку с конца строки, вы можете указать отрицательный индекс, например -4, который извлечёт последние четыре символа строки.

Давайте рассмотрим пример с городами в США. Нам нужны только три последних символа строки Python.

city = 'Los Angeles'

last_three_letters = city[-3:]

print("Last Three Letters:", last_three_letters)

нарезка строк в Python с примером отрицательной нарезки

Посмотрите на результат. Вы упомянули параметр start, чтобы строка среза содержала символ с этим индексным номером, и не упомянули параметр stop, чтобы он доходил до конца строки Python.

С использованием функции Slicing()

В Python функция slicing() работает как оператор среза, с которым вы познакомились в предыдущем разделе. Единственное отличие заключается в том, что slicing() — это функция, которая принимает те же параметры, что и оператор среза.

Синтаксис приведен ниже.

slice(start, end, step)

Где параметры функции:

  • start: это начальный индекс части среза.
  • end: это конечный индекс части среза, но он не включен в часть среза.
  • step: размер шага определяет количество индексов, которые необходимо пропустить между каждым индексом.

Например, предположим, у вас есть список имён «даты», в котором даты записаны в формате «ГГГГММДД». Вам нужно извлечь из каждой даты только день и год.

Посмотрите на код ниже и запустите его.

dates = ["20240101", "20241225", "20241111"]

year_slice = slice(0, 4)
day_slice = slice(6, 8)

for date in dates:
 year = date[year_slice]
 day = date[day_slice]
 print(f"Year: {year}, Day: {day}")

Нарезка строки Python с использованием функции Slicing()

Функция среза() извлекает из даты год и день. Давайте рассмотрим часть кода «year_slice = срез(0, 4) и day_slice = срез(6, 8)».

Создадим два объекта среза, используя разные индексы начала и конца. Первый объект среза будет иметь индекс от 0 до 4, не включая индекс 4 (фактически от 0 до 3). Второй объект среза будет иметь индекс от 6 до 8, но фактический индекс будет от 6 до 7.

Затем запустим цикл, который будет выполняться для каждой даты в списке. Количество итераций в цикле будет равно количеству дат в списке. Для каждой даты мы будем использовать объекты year_slice и day_slice в качестве индексов, чтобы извлечь год и день этой даты.

Таким образом, он вырезает часть года и дня каждой даты в списке и печатает ее с помощью ‘print(f”Year: {year}, Day: {day}”)’.

 

Добавить комментарий