5 técnicas expertas para invertir cadenas en Python
Una cadena es una lista ordenada o secuencia de caracteres. Las cadenas son una de las estructuras de datos que incluye Python. Al trabajar con cadenas, es posible que necesites invertir todos los caracteres. Un buen ejemplo sería al crear un juego de palíndromos.
Una cadena invertida tiene su primer carácter como el último, y así sucesivamente. Sin embargo, Python no tiene una función integrada para invertir cadenas, pero existen varios métodos.
En este tutorial, aprenderás diferentes métodos para invertir una cadena en Python.
Método 1: Invertir cadena en Python usando un bucle For
El primer método para invertir cadenas es usar un bucle for:
Código Python:
# función para invertir una cadena
def invertir_cadena(cadena):
# cadena vacía para almacenar la invertida
cadena_invertida = ""
# recorrer la cadena
for caracter in cadena:
# invertir la cadena
cadena_invertida = caracter + cadena_invertida
# devolver la cadena invertida
return cadena_invertida
# la cadena a invertir
cadena = "Guru99"
# imprimir mensaje
print(f"Inversión de cadena usando bucle for")
# imprimir la cadena original
print(f"Cadena original: {cadena}")
# llamada a la función dentro de print con f-string
print(f"Cadena invertida: {invertir_cadena(cadena)}")
Salida:
Inversión de cadena usando bucle for Cadena original: Guru99 Cadena invertida: 99uruG
Explicación del código:
- Usamos la función invertir_cadena() que toma una cadena como argumento.
- Creamos una cadena vacía para almacenar el resultado invertido.
- Recorremos la cadena carácter por carácter.
- Cada carácter se concatena al inicio de cadena_invertida.
- Finalmente, la función devuelve la cadena invertida.
- Mostramos el resultado llamando a la función dentro de print() con f-string.
Método 2: Invertir cadena en Python usando un bucle While
Usar un bucle while es otro método para invertir una cadena:
Código Python:
# declarar cadena a invertir
cadena = "Python"
# inicializar cadena vacía para el resultado
cadena_invertida = ""
# imprimir mensaje
print(f"Inversión de cadena usando bucle while")
# imprimir cadena original
print(f"Cadena original: {cadena}")
# obtener longitud de la cadena
contador = len(cadena)
# bucle while para recorrer los caracteres
while contador > 0:
# guardar el valor de cadena[contador-1] en cadena_invertida
cadena_invertida += cadena[contador - 1]
# decrementar índice
contador = contador - 1
print(f"Cadena invertida: {cadena_invertida}")
Salida:
Inversión de cadena usando bucle while Cadena original: Python Cadena invertida: nohtyP
Explicación del código:
- Declaramos la cadena a invertir y una cadena vacía para el resultado.
- Obtenemos la longitud de la cadena y la guardamos en contador.
- cadena[contador - 1] recupera los caracteres del final al principio en cada iteración.
- Los concatenamos a cadena_invertida y decrementamos contador.
- Finalmente, imprimimos la cadena invertida.
Método 3: Invertir cadena en Python usando el operador Slice
Otro método es usar el operador slice:
Código Python:
# función para invertir una cadena
def invertir(cadena):
# sintaxis de slice
cadena_invertida = cadena[::-1]
return cadena_invertida
# declarar cadena a invertir
cadena = "Let's guru99"
# imprimir mensaje
print(f"Inversión de cadena usando operador Slice")
# imprimir cadena original
print(f"Cadena original: {cadena}")
# llamada a la función dentro de print
print(f"Cadena invertida: {invertir(cadena)}")
Salida:
Inversión de cadena usando operador Slice Cadena original: Let's guru99 Cadena invertida: 99urug s'teL
Explicación del código:
- Creamos la función invertir() que toma una cadena como argumento.
- Usamos el operador slice cadena[::-1] para invertir la cadena.
- Asignamos el resultado a cadena_invertida.
- Devolvemos la nueva cadena invertida.
Método 4: Invertir una cadena en Python usando la función reversed()
También podemos invertir una cadena usando la función reversed():
Ejemplo de código Python:
# función para invertir una cadena
def invertir(cadena):
# función reversed() dentro de join()
cadena = "".join(reversed(cadena))
# devolver la cadena invertida
return cadena
# declarar cadena a invertir
cadena = "guru99"
# imprimir mensaje
print(f"Inversión de cadena usando función reversed()")
# imprimir cadena original
print(f"Cadena original: {cadena}")
# llamada a la función dentro de print
print(f"Cadena invertida: {invertir(cadena)}")
Salida:
Inversión de cadena usando función reversed() Cadena original: guru99 Cadena invertida: 99urug
Explicación del código:
- Usamos la función reversed() cuyo argumento es una cadena.
- Concatenamos el resultado de reversed(cadena) usando join() con una cadena vacía.
- Fuera de la función, declaramos la cadena a invertir e imprimimos original e invertida.
Método 5: Invertir cadena en Python usando recursión
La recursión significa que una función se llama a sí misma. Para entenderlo mejor, veamos el código:
Código Python:
# función para invertir una cadena
def invertir(cadena):
# verificar longitud de la cadena
if len(cadena) == 0:
return cadena
# invertir cadena si longitud != 0
else:
# llamada recursiva a invertir()
return invertir(cadena[1:]) + cadena[0]
# declarar cadena a invertir
cadena = "I love guru99"
# imprimir mensaje
print(f"Inversión de cadena usando recursión")
# imprimir cadena original
print(f"Cadena original: {cadena}")
# llamada a la función dentro de print
print(f"Cadena invertida: {invertir(cadena)}")
Salida:
Inversión de cadena usando recursión Cadena original: I love guru99 Cadena invertida: 99urug evol I
Explicación del código:
- Declaramos la función invertir() que toma una cadena como argumento; su cuerpo es un if-else.
- El if verifica si la longitud es 0 y devuelve la cadena.
- El else llama a invertir() recursivamente, corta el primer carácter y lo añade al final.
Conclusión
- Este tutorial ha mostrado cómo invertir cadenas usando varios métodos en Python.
- Podemos usar invertir_cadena() tomando una cadena como argumento.
- También se pueden usar bucles for y while para invertir cadenas.
- Se puede usar la función reversed() que toma una cadena como argumento.
- Al elegir estos métodos, considera su rendimiento como factor decisivo.
python
- Dominando Conjuntos en Python: Creación, Manipulación y Operaciones
- Domine preguntas y respuestas de entrevistas de Python: Su guía definitiva de preparación
- Paquetes en Python: Estructura, Importación y Mejores Prácticas
- Dominando argumentos de funciones en Python: Posicionales, por palabra clave y por defecto
- Python len(): Guía Práctica para Medir Longitud de Objetos
- Dominando funciones en Python: Sintaxis, tipos y ejemplos prácticos
- Tutorial PyTest: Instala, Escribe y Ejecuta Tests en Python con Confianza
- Domine las Sentencias Condicionales en Python: IF, ELSE, ELIF y Lógica Tipo Switch
- Dominando los fundamentos de Python: Sintaxis y conceptos básicos
- Rutas de aprendizaje acelerado de Python: Domina Python de principiante a avanzado
- Acceso a MySQL con Python: Usando el Estándar DB-API