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.

Respostas:


118

Use rpartition(s). Ele faz exatamente isso.

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


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


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']
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.