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.