Как получить последние символы строки в Python

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

Скачивайте книги ТОЛЬКО на русском языке у нас в телеграм канале: PythonBooksRU

В Python строка – это последовательность символов, и каждый символ в ней имеет связанный с ним индексный номер. Например, у нас есть строковая переменная sample_str, которая содержит строку:

sample_str = "Sample String"

Каждый символ в этой строке имеет порядковый номер, а начинается нумерация (индексация) с 0. То есть:

  • ‘S’ имеет индекс 0
  • ‘a’ имеет индекс 1
  • ‘m’ имеет индекс 2
  • ‘p’ имеет индекс 3
  • ‘l’ имеет индекс 4
  • ‘e’ имеет индекс 5
  • ‘ ‘ имеет индекс 6
  • ‘S’ имеет индекс 7
  • ‘t’ имеет индекс 8
  • ‘r’ имеет индекс 9
  • ‘i’ имеет индекс 10
  • ‘n’ имеет индекс 11
  • ‘g’ имеет индекс 12

String в Python предоставляет оператор [] для доступа к любому символу в строке по индексу. Нам нужно передать позицию индекса в квадратных скобках, и оператор вернет символ с этим индексом. Например, sample_str[i] вернет символ в i-й позиции.

Примечание редакции: о том, как найти сам индекс, читайте в статье “Как найти индекс символа в строке в Python”.

Но здесь ситуация немного сложнее: мы хотим получить доступ к элементам, начиная с последнего в строке. Для этого есть разные способы, давайте рассмотрим их по очереди.

Получение последнего символа строки при помощи отрицательной индексации

Помимо положительных индексов, мы можем передавать в оператор [] и отрицательные. Каждый символ в строке имеет отрицательный индекс, связанный с ним. Последний символ строки имеет индекс -1, предпоследний – -2 и так далее.

Таким образом, если наша строка – ‘Sample String’, то отрицательная индексация в ней будет выглядеть следующим образом:

  • ‘S’ имеет индекс -13
  • ‘a’ имеет индекс -12
  • ‘m’ имеет индекс -11
  • ‘p’ имеет индекс -10
  • ‘l’ имеет индекс -9
  • ‘e’ имеет индекс -8
  • ‘ ‘ имеет индекс -7
  • ‘S’ имеет индекс -6
  • ‘t’ имеет индекс -5
  • ‘r’ имеет индекс -4
  • ‘i’ имеет индекс -3
  • ‘n’ имеет индекс -2
  • ‘g’ имеет индекс -1

Последний символ строки имеет индексную позицию -1. Поэтому, чтобы получить последний символ из строки, передайте -1 в квадратных скобках. Пример:

sample_str = "Sample String"
# Получить последний символ строки, т.е. символ с индексом -1
last_char = sample_str[-1]
print('Last character: ', last_char)

# Вывод:
# Last character:  g

Получение последнего символа строки с помощью функции len()

Предположим, мы не хотим использовать отрицательную индексацию. Тогда для доступа к последнему символу строки можно сначала вычислить длину строки, а затем вычесть из нее единицу – это и будет индекс последнего символа.

sample_str = "Sample String"
# Получить длину строки
length = len(sample_str)
# Получить последний символ, т.е. символ с индексом length - 1
last_char = sample_str[length - 1]
print('Last character: ', last_char)

# Вывод:
# Last character:  g

Мы получили последний символ, но это решение немного сложнее предыдущего.

До сих пор мы извлекали один символ, но что, если нам нужно больше? Например, если мы хотим получить последние 2, 3, 4 и т.д. символов строки. По сути, нам нужен доступ к подстроке заданной длины из конца строки. Как это сделать?

Извлекаем несколько последних символов строки

В Python оператор [] может принимать не только отдельный индекс, но и диапазон индексов. При этом возвращается фрагмент строки, т.е. подстрока.

string[start:end:step]
  • start – индекс, с которого начнется выборка символов, по умолчанию значение равно 0.
  • end – индекс, до которого будет производиться выборка символов из строки, значение по умолчанию – конец строки. Сам конечный индекс в выборку не входит.
  • step – шаг, значение по умолчанию – 1.

Чтобы получить последние N символов строки, нужно либо передать отрицательные индексы, либо использовать функцию len() для вычисления диапазона.

Получаем последние символы строки с использованием отрицательных индексов

sample_str = "Sample String"
# Получить последние 3 символа
last_chars = sample_str[-3:]
print('Last 3 character: ', last_chars)

# Вывод:
# Last 3 character:  ing

Мы сделали срез строки от третьего индекса с конца строки и до конца строки. Таким образом мы получили подстроку, содержащую последние три символа строки.

Получаем последние символы строки с помощью функции len()

sample_str = "Sample String"

# Получить длину строки
length = len(sample_str)
# Получить 3 последних символа
last_chars = sample_str[length - 3 :]
print('Last 3 character: ', last_chars)

# Вывод:
# Last 3 character:  ing

Сначала мы вычислили длину строки, а затем сделали срез от индексной позиции length - 4 до конца строки. Так мы получили подстроку, содержащую последние три символа исходной строки.

Перевод статьи «Python: How to get Last N characters in a string?».

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *