Cómo invertir una cadena en Python

Aprenda a invertir una cadena en Python usando el corte, la función invertida() y la concatenación de bucles con ejemplos de código visual.

Pruebe esta solución en el Editor

Descripción general

La manipulación de cadenas es una capacidad central en el procesamiento, análisis y resolución de problemas algorítmicos de texto. Invertir una cadena es un ejercicio clásico que muestra la flexibilidad de las estructuras de datos de Python. Dado que las cadenas en Python son inmutables (lo que significa que no se pueden cambiar después de su creación), invertir una cadena siempre devuelve una nueva cadena.

La forma más común, idiomática y rápida de invertir una cadena en Python es usar notación de segmento: `my_string[::-1]`. La sintaxis del segmento toma tres parámetros `[inicio:parada:paso]`. Al omitir `inicio` y `detener` y establecer `paso` en `-1`, le dice a Python que recorra la cadena hacia atrás desde el final hasta el principio. Debajo del capó, esta operación de corte se implementa en código C optimizado, lo que la hace excepcionalmente rápida.

Alternativamente, puede usar la función incorporada `reversed()`, que devuelve un iterador que genera caracteres en orden inverso. Para convertir este iterador nuevamente en una cadena, únelos usando `"".join(reversed(text))`. Este método es muy legible y funciona bien si desea recorrer los caracteres invertidos directamente sin crear primero una nueva cadena.

Código y salida de ejecución

Este script demuestra cómo invertir una cadena usando corte, unión + inversión y una implementación de bucle manual.

reverse_string.py
Pruébelo en el editor
text = "PyRun"

# Method 1: Slicing (Fastest & most common)
reversed_slice = text[::-1]
print("Slicing:", reversed_slice)

# Method 2: reversed() and join() (Very readable)
reversed_join = "".join(reversed(text))
print("Reversed join:", reversed_join)

# Method 3: Loop (Useful for demonstrating logic)
reversed_loop = ""
for char in text:
    reversed_loop = char + reversed_loop
print("Loop method:", reversed_loop)
Salida terminal
Slicing: nuRyP
Reversed join: nuRyP
Loop method: nuRyP

Implementación paso a paso

  • Utilice la notación de segmento [::-1] para obtener la forma más rápida y pitónica de invertir una cadena.
  • Utilice "".join(reversed(text)) para invertir una cadena utilizando un enfoque basado en iteradores.
  • Recuerde siempre que invertir una cadena crea un nuevo objeto de cadena en la memoria.

Preguntas frecuentes

¿Cortar una cuerda es la forma más rápida de invertir una cuerda?

Sí, la notación de sectores se implementa en C y se ejecuta mucho más rápido que los bucles o las expresiones generadoras.

¿Por qué no puedo invertir una cadena en el lugar?

Las cadenas en Python son inmutables, lo que significa que sus caracteres no se pueden modificar in situ. Debes construir una nueva cadena.

Temas relacionados

Recursos recomendados de Python

Amplíe sus conocimientos con tutoriales interactivos relacionados, hojas de trucos y comparaciones de códigos.