разделить строку на 2 на основе последнего вхождения разделителя


100

Я хотел бы знать, есть ли в python встроенная функция для разбиения строки на 2 части на основе последнего появления разделителя.

например: рассмотрим строку «abc, d, e, f» после разделения по разделителю «,», я хочу, чтобы вывод был как

«abc, d, e» и «f».

Я знаю, как манипулировать строкой, чтобы получить желаемый результат, но я хочу знать, есть ли встроенная функция в python.

Ответы:


119

Используйте rpartition(s). Это именно так.

Вы также можете использовать rsplit(s, 1).


11
Не совсем так: "abc, d, e, f" .rpartition (',') -> ('abc, d, e', ',', 'f')
Вануан

@Vanuan, это ТОЧНО, что на самом деле. Просто также возвращает разделитель по той или иной причине: str.rpartition (sep) Разделить строку в последнем вхождении sep и вернуть 3-кортеж, содержащий часть перед разделителем, сам разделитель и часть после разделителя . Если разделитель не найден, верните 3-кортеж, содержащий две пустые строки, за которыми следует сама строка.
Петар Иванов

23
rsplit(s, 1)да и rpartition(s)вывод другой, согласитесь.
Vanuan


54

Вы можете разделить строку по последнему вхождению разделителя с помощью rsplit:

Возвращает список слов в строке, разделенных строкой-разделителем (начиная справа).

Чтобы разделить последней запятой:

>>> "a b c,d,e,f".rsplit(',', 1)
['a b c,d,e', 'f']
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.