Cómo Invertir una Cadena en Python

La forma más rápida de invertir una cadena en Python es el slicing con paso -1:

invertido = "hola"[::-1]

¿Cuándo necesitas esto?

Invertir una cadena es un ejercicio clásico y un truco muy útil en Python. Lo necesitas para comprobar palíndromos, procesar datos que llegan invertidos o simplemente para entender cómo funciona el slicing. En esta guía aprenderás cómo invertir una cadena en Python con slicing, reversed(), bucles y recursión.

Método 1: Invertir con slicing [::-1] (recomendado)

La forma más corta y recomendada de invertir una cadena en Python es el slicing con paso -1.

texto = "hola"
invertido = texto[::-1]
print(invertido)
# aloh

Método 2: Invertir con reversed()

La función integrada reversed() devuelve los caracteres en orden inverso. Combínala con join() para construir la cadena.

texto = "python"
invertido = "".join(reversed(texto))
print(invertido)
# nohtyp

Método 3: Invertir con un bucle for

También puedes invertir la cadena manualmente. Esto te ayuda a entender cómo funcionan los índices en Python.

texto = "hola"
invertido = ""
for caracter in texto:
    invertido = caracter + invertido
print(invertido)
# aloh

Método 4: Invertir con recursión

Una solución recursiva es elegante y una gran forma de practicar recursión. Si la cadena está vacía o tiene un solo carácter, ya está invertida.

def invertir(texto):
    if len(texto) <= 1:
        return texto
    return invertir(texto[1:]) + texto[0]

print(invertir("hola"))
# aloh

Método 5: Invertir las palabras de una frase

Si quieres invertir el orden de las palabras en lugar de los caracteres, divide el texto e invierte la lista.

frase = "hola mundo python"
invertida = " ".join(frase.split()[::-1])
print(invertida)
# python mundo hola

Comparativa de métodos

Método Ventaja Cuándo usarlo
Slicing [::-1] Más rápido y corto Siempre recomendado
reversed() Legible Cuando buscas claridad
Bucle for Educativo Entender los índices
Recursión Elegante Practicar recursión
split()[::-1] Invierte palabras Frases y oraciones

Errores comunes y solución

Intentar invertir una cadena en el lugar

Las cadenas son inmutables en Python. No puedes modificarlas; siempre creas una cadena nueva con uno de los métodos anteriores.

Olvidar join() con reversed()

reversed() devuelve los caracteres uno a uno. Sin "".join() obtienes un iterador, no una cadena.

Preguntas frecuentes

¿Cuál es la forma más rápida de invertir una cadena en Python?

El slicing con [::-1] es la opción más rápida y legible.

¿[::-1] funciona con cualquier secuencia?

Sí. El slicing funciona con strings, listas, tuplas y cualquier otra secuencia en Python.

¿Puedo invertir una cadena en el lugar?

No. Las cadenas son inmutables en Python, por lo que siempre creas una cadena nueva.

Contenido relacionado

Palabras clave relacionadas

cómo invertir una cadena en python, invertir cadena python, reverse string python, slicing python, reversed python, recursión python, invertir palabras python

Guarda este tutorial y compártelo si te fue útil. Encuentra más guías prácticas en la sección how-to de Python.