dividir la cadena en 2 según la última aparición de un separador


100

Me gustaría saber si hay alguna función incorporada en Python para dividir la cadena en 2 partes, según la última aparición de un separador.

por ejemplo: considere la cadena "abc, d, e, f", después de la división sobre el separador ",", quiero la salida como

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

Sé cómo manipular la cadena para obtener el resultado deseado, pero quiero saber si hay alguna función incorporada en Python.

Respuestas:


118

Utilice rpartition(s). Hace exactamente eso.

También puede utilizar rsplit(s, 1).


11
No exactamente: "abc, d, e, f" .rpartition (',') -> ('abc, d, e', ',', 'f')
Vanuan

@Vanuan, es EXACTAMENTE eso en realidad. También devuelve el separador por una razón u otra: str.rpartition (sep) Divide la cadena en la última aparición de sep y devuelve una tupla de 3 que contiene la parte antes del separador, el separador en sí y la parte después del separador . Si no se encuentra el separador, devuelve una tupla de 3 que contiene dos cadenas vacías, seguida de la cadena en sí.
Petar Ivanov

23
rsplit(s, 1)y la rpartition(s)salida es diferente, debes admitirlo.
Vanuan


54

Puede dividir una cadena por la última aparición de un separador con rsplit:

Devuelve una lista de las palabras de la cadena, separadas por la cadena delimitadora (empezando por la derecha).

Para dividir por la última coma:

>>> "a b c,d,e,f".rsplit(',', 1)
['a b c,d,e', 'f']
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.