Разделение строк — это распространённая задача в области анализа данных, особенно когда нам нужно получить только определённую часть элемента. В этом руководстве вы узнаете, как выполнить такое разделение, используя различные методы.

Что значит разделить последний элемент? В Python разделение последнего элемента строки означает разделение строки на две части по последнему вхождению указанного разделителя. Иными словами, мы извлекаем определённую часть строки из её конца или манипулируем последней частью строки для разных целей.

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

Содержание

С помощью функции rsplit()

Функция rsplit() в Python позволяет разбить строку с правой стороны. В этом примере мы увидим, как разделить строку справа (с конца) на основе разделителя — пробела.

# string is defined
text = "living in the USA"

# rsplit() splits the string from the right side based on the space
result = text.rsplit(' ', 1)
print(result)

с помощью функции rsplit()

Из вывода следует, что слово «США» — последнее в строке «живущих в США». Поэтому, если использовать функцию rsplit(), строка разделится от конечного слова и в результате получится список [‘живет в’, ‘США’].

С помощью функции rpartition()

Функция rpartition() в Python также разделяет строку, но делает это иначе. Она делит строку на три части: первая часть — всё, что находится слева от разделителя, вторая часть — сам разделитель, третья часть — всё, что идёт после разделителя.

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

# string is defined
text = "[email protected]"
# rpartition() splits the string based on the "."
result = text.rpartition('.')
print(result[2])

с помощью функции rpartition()

Из приведённого выше вывода можно понять, что последним элементом в строке «[email protected]» является слово «com». Для этого используется метод rpartition(“.”), который делит строку на три части и возвращает список [«vincent@icloud», «.», «com»]. Затем к последнему элементу этого списка обращается метод result[2].

С помощью функции Slicing и rfind()

Функция rfind() в Python позволяет найти наибольший индекс (последнее вхождение) указанной подстроки в строке. Если подстрока обнаружена, rfind() вернёт индекс её последнего вхождения. Если подстрока не найдена, будет возвращено значение -1.

Вы также знакомы с нарезкой в Python. Она позволяет извлекать части строки на основе указанного диапазона.

Рассмотрим пример разделения строки и получения последнего элемента с помощью rfind() и нарезки.

# initializing string
fruit_string = "apple, banana, cherry, date, elderberry"

# printing original string
print("The original string : " + str(fruit_string))

# Split on last occurrence of delimiter
# Count total occurrences of the delimiter(comma)
p = fruit_string.count(",")

# initialize counter and new string
c = 0
new = ""

# loop through each character in the string
for i in fruit_string:
    # if the character is a comma and we haven't reached the second-to-last comma
    if(i == "," and c < p-1):
        new += "*"  # replace comma with asterisk
        c += 1      # increment counter
    else:
        new += i    # keep the character as is

# split the string at the last comma
x = new.split(",")

# replace the asterisks back with commas in the first part of the result
x[0] = x[0].replace("*", ",")

print("The splitted list at the last comma : " + str(x))

с помощью функции Slicing и rfind()

Добавить комментарий