¿Qué es str.rpartition() en Python?: úsalo para dividir cadenas al revés

| Última modificación: 9 de diciembre de 2024 | Tiempo de Lectura: 3 minutos

Algunos de nuestros reconocimientos:

Premios KeepCoding

Ya hemos visto en otros post cómo dividir cadenas en Python, esta vez queremos enseñarte cómo hacerlo pero a partir de la última aparición de un caracter o subcadena gracias a str.rpartition().

str.rpartition() en python

¿Qué es str.rpartition()?

El str.rpartition() es un método dentro de Python que nos permite dividir una cadena en tres partes, pero por medio de la última aparición de un delimitador específico. Se diferencia de str.partition() porque este parte la cadena en el primer delimitador que encuentra, en cambio str.rpartition() lo hace buscando el último y luego divide la cadena en tres elementos:

  1. Antes del delimitador.
  2. El delimitador encontrado.
  3. Después del delimitador.

Su sintaxis queda así:

cadena.rpartition(valor)

Aquí el valor es el string o carácter que deseas buscar en la cadena.

Si el delimitador no se encuentra en la cadena, el método devuelve una tupla con tres elementos:

  • Un string vacío antes del delimitador.
  • Un string vacío para el delimitador.
  • La cadena completa como el tercer elemento.

Veamos cómo funciona str.rpartition() con un ejemplo:

txt = "I could eat bananas all day, bananas are my favorite fruit"
resultado = txt.rpartition("bananas")
print(resultado)

🔴 ¿Quieres Aprender a Programar con Python? 🔴

Descubre el Full Stack Jr. Bootcamp - Aprende a Programar desde Cero de KeepCoding. La formación más completa del mercado y con empleabilidad garantizada

👉 Prueba gratis el Bootcamp Aprende a Programar desde Cero por una semana

Salida:

('I could eat ', 'bananas', ' all day, bananas are my favorite fruit')

En este ejemplo, hemos usado rpartition() para dividir la cadena en tres partes usando la palabra “bananas” como delimitador. Como hay dos ocurrencias de “bananas”, rpartition() toma la última y divide la cadena alrededor de ella.

¿Cuándo usar str.rpartition()?

Si necesitas manejar distintas cadenas de texto que contienen diferentes delimitadores, pero te interesa dividirla en torno a la última ocurrencia, este es un método para ti. Con él puedes, entre otras cosas:

  • Procesar rutas de archivos donde el delimitador sea / o \ y necesitas obtener la última parte de la ruta.
  • Analizar direcciones de correo electrónico donde quieres separar el dominio del nombre de usuario.
  • Partir una URL y obtener la última sección, como la que corresponde a un nombre de página o producto.

Veamos un ejemplo:

En esta situación hipotética tenemos una lista de rutas de archivos en un SO y debemos separar la carpeta principal del nombre del archivo. Si tenemos varias carpetas anidadas, el str.partition() es recomendado para obtener el nombre del archivo de la última ruta:

ruta = "/home/user/proyectos/python/codigo.py"
resultado = ruta.rpartition("/")
print(resultado)

Salida:

('/home/user/proyectos/python', '/', 'codigo.py')

En este caso, rpartition() ha dividido la ruta en tres partes:

  • El camino hasta la última carpeta (/home/user/proyectos/python).
  • El delimitador /.
  • El nombre del archivo (codigo.py).

¿Qué diferencia el str.partition() de otros métodos con funciones similares?

Es posible que te preguntes si str.rpartition() es el único método que puedes usar para dividir cadenas. La respuesta es no, veamos otros métodos similares:

MétodoDescripciónResultadoUso Principal
str.partition()Divide en tres partes usando la primera aparición del delimitador.(antes, delimitador, después)Obtener las partes antes y después del primer delimitador.
str.split()Divide la cadena en partes usando un delimitador y retorna una lista.Lista de subcadenas.Dividir cadenas por cualquier delimitador.
str.rsplit()Divide la cadena usando el delimitador, pero comenzando desde el final.Lista de subcadenas.Similar a split(), pero desde el final.
str.splitlines()Divide la cadena por saltos de línea.Lista de subcadenas.Utilizar para dividir cadenas en múltiples líneas.

str.rpartition() es particularmente útil cuando necesitas dividir una cadena usando la última ocurrencia de un delimitador, mientras que str.split() o str.partition() pueden no ofrecer la misma flexibilidad.

si te ha interesado este tema y quieres seguir aprendiendo con Keepcoding, te traemos el mejor bootcamp para programadores principiantes, en donde aprenderás todo lo necesario, en cuestiones teóricas y prácticas, para incursionar en el mejor mercado laboral del sector. ¡Empieza a trazar tu camino al éxito! Aprende de los mejores profesores que te acompañarán en todo tu proceso formativo.

Ramón Maldonado

Full Stack Developer y Responsable de Formación base en KeepCoding.

Posts más leídos

¡CONVOCATORIA ABIERTA!

Aprende a Programar desde Cero

Full Stack Jr. Bootcamp

Apúntate y consigue uno de los perfiles más demandados con Python en solo 4 meses.