розділити рядок на 2 на основі останнього появи роздільника


100

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

наприклад: розгляньте рядок "abc, d, e, f", після розбиття на роздільник ",", я хочу, щоб результат був як

"abc, d, e" і "f".

Я знаю, як маніпулювати рядком, щоб отримати бажаний вихід, але я хочу знати, чи є вбудована функція в python.

Відповіді:


118

Використовуйте rpartition(s). Це робить саме це.

Ви також можете використовувати rsplit(s, 1).


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

@ Вануан, це ТОЧНО, що насправді. Просто також повертає роздільник з тієї чи іншої причини: str.rpartition (sep) Розділіть рядок під час останнього появи sep та поверніть 3-кортеж, що містить частину перед роздільником, самим роздільником та частиною після роздільника. . Якщо роздільник не знайдений, поверніть 3-кортеж, що містить дві порожні рядки, а потім - сам рядок.
Петро Іванов

23
rsplit(s, 1)і rpartition(s)вихід різний, ви повинні визнати.
Вануан


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.