dividir a string em 2 com base na última ocorrência de um separador

100

Gostaria de saber se existe alguma função incorporada em python para quebrar a string em 2 partes, com base na última ocorrência de um separador.

por exemplo: considere a string "abc, d, e, f", após a divisão sobre o separador ",", eu quero a saída como

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

Eu sei como manipular a string para obter a saída desejada, mas quero saber se existe alguma função integrada em python.

Yashwanth Kumar
fonte

Respostas:

118

Use rpartition(s). Ele faz exatamente isso.

Você também pode usar rsplit(s, 1).

Petar Ivanov
fonte
11
Não exatamente: "abc, d, e, f" .rpartition (',') -> ('abc, d, e', ',', 'f')
Vanuan
@Vanuan, é EXATAMENTE isso na verdade. Também retorna o separador por um motivo ou outro: str.rpartition (sep) Divide a string na última ocorrência de sep e retorna uma tupla de 3 contendo a parte antes do separador, o próprio separador e a parte após o separador . Se o separador não for encontrado, retorne uma 3-tupla contendo duas strings vazias, seguidas pela própria string.
Petar Ivanov
23
rsplit(s, 1)e a rpartition(s)saída é diferente, você deve admitir.
Vanuan
73
>>> "a b c,d,e,f".rsplit(',',1)
['a b c,d,e', 'f']
Gryphius
fonte
54

Você pode dividir uma string pela última ocorrência de um separador com rsplit:

Retorna uma lista das palavras na string, separadas pela string delimitadora (começando da direita).

Para dividir pela última vírgula:

>>> "a b c,d,e,f".rsplit(',', 1)
['a b c,d,e', 'f']
wRAR
fonte