разделить строку на 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
73
>>> "a b c,d,e,f".rsplit(',',1)
['a b c,d,e', 'f']
Грифиус
источник
54

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

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

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

>>> "a b c,d,e,f".rsplit(',', 1)
['a b c,d,e', 'f']
WRAR
источник