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'
        

undefined
2
Задача
Модуль 1: Python Core, 6 уровень, 10 лекция
Недоступна
Извлечение подстрок.
Извлечение подстрок.
undefined
2
Задача
Модуль 1: Python Core, 6 уровень, 10 лекция
Недоступна
Отрицательные срезы
Отрицательные срезы