11.1 Задание индексов
В Python извлечение подстрок — это часто используемая операция, позволяющая манипулировать текстовыми данными и извлекать значимые части информации из строк. Рассмотрим несколько способов получения подстрок, каждый из которых имеет свои особенности и области применения.
Использование срезов
Срезы (slices)
— это основной способ получения
подстрок в Python. Срез в Python создается с помощью синтаксиса
string[start
:stop
:step
],
где:
start
— начальный индекс (включительно),stop
— конечный индекс (не включительно),step
— шаг, с которым извлекаются символы.
Синтаксис срезов позволяет указывать начальный и конечный индексы подстроки, которую вы хотите извлечь.
text = "Hello, world!"
substring = text[7:12] # Выведет 'world'
11.2 Неполное задание индексов
Все три индекса для извлечения подстроки указывать не обязательно.
- Если
start
опущен, срез начинается с начала строки. - Если
stop
опущен, срез идет до конца строки. - Если
step
опущен, символы извлекаются один за другим.
Примеры:
Давите напишем пример, чтобы получить подстроку начиная с 7-го символа и до конца строки
text = "Hello, world!"
substring = text[7:] # Выведет 'world!'
Теперь с начала строки и до 10 символа. Надеюсь, вы помните, что последний символ диапазона не включается в подстроку-результат.
text = "Hello, world!"
substring = text[:10] # Выведет 'Hello, wor'
11.3 Отрицательные индексы
Отрицательные индексы в Python позволяют обращаться к элементам строки начиная с конца. Использование отрицательных индексов делает код часто более читабельным и удобным, особенно когда нужно работать с концом строки.
Получение последнего символа строки:
text = "Python"
last_char = text[-1]
print(last_char) # Выведет: 'n'
Получение предпоследнего символа строки:
text = "Python"
second_last_char = text[-2]
print(second_last_char) # Выведет: 'o'
Для получения последних трёх символов строки:
text = "Python"
last_three = text[-3:]
print(last_three) # Выведет: 'hon'
Для получения строки, исключая последний символ:
text = "Python"
all_but_last = text[:-1]
print(all_but_last) # Выведет: 'Pytho'
Продвинутое использование срезов
С помощью параметра step можно создавать более сложные срезы, например, для извлечения символов в обратном порядке:
# Перевернуть строку
print(text[::-1]) # '!dlrow ,olleH'