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
- Cómo Comprobar si una Cadena es Palíndromo en Python
- Cómo Eliminar Duplicados de una Lista en Python
- Tutoriales How-To en Python
- Curso de Python desde Cero
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.