Срезы строк
Срезы (slicing) позволяют извлекать подстроки из исходной строки, используя специальный синтаксис.
Общий синтаксис среза
Где:
start
- начальный индекс (включительно)
stop
- конечный индекс (не включительно)
step
- шаг (необязательный параметр)
В таблице приведены примеры использования различных видов срезов в Python, где в качестве исходной строки используется text = "silvertests"
Пример |
Код |
Вывод |
Объяснение |
Примечание |
Срез с указанием начала и конца |
text[0:6] |
"silver" |
Извлекаем подстроку "silver" с 0-го по 5-й индекс (не включительно) |
если step не указан, считается, что он равен 1 |
|
text[6:12] |
"tests" |
Извлекаем подстроку "tests" с 6-го по 11-й индекс (не включительно) |
Срез с опущенным началом |
text[:6] |
"silver" |
Опускаем начальный индекс, эквивалентно text[0:6] |
если не указан первый параметр (start ), срез берется от начала строки |
Срез с опущенным концом |
text[6:] |
"tests" |
Опускаем конечный индекс, эквивалентно text[6:12] |
если не указан второй параметр (stop ), срез берется до конца строки, включая последний символ |
Срез от начала до конца строки |
text[:] |
"silvertests" |
Опускаем начальный и конечный индексы, получаем всю строку |
|
Срез с отрицательными индексами |
text[-5:-1] |
"tests" |
Используем отрицательные индексы, чтобы получить подстроку "tests" |
|
Срез с шагом |
text[::2] |
"sletes" |
Используем шаг 2, чтобы получить каждый второй символ |
|
|
text[::3] |
"svss" |
Используем шаг 3, чтобы получить каждый третий символ |
|
|
text[::-1] |
"stsetrevlis" |
Используем шаг -1, чтобы получить строку в обратном порядке |
|
Если в срезе указан отрицательный шаг, то отсчет индексов для начального и конечного значений ведется с конца строки. И при этом, start
должен быть больше stop
. Если start
отсутствует, то срез идет с конца строки, если отсутствует stop
, то срез идут до начала строки (включительно)