Задача

18 /27


Срезы строк


Срезы строк

Срезы (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, то срез идут до начала строки (включительно)



Пояснение к примеру
  1. В первом примере text[::-1] мы получаем строку в обратном порядке, начиная с последнего символа и заканчивая первым (с индексом 0).
  2. Во втором примере text[11:5:-1] срез будет включать символы, начиная с последнего ("s") и заканчивая символом "t".
  3. В третьем примере text[11::-1] мы опускаем конечный индекс, получая тот же результат, что и в первом примере.
  4. В четвертом примере text[:1:-1] мы опускаем начальный индекс, получая строку в обратном порядке, кроме второго символа (с индексом 1).

time 1000 ms
memory 256 Mb

Комментарий учителя