Cómo invertir una cadena en Python (5 Métodos)

⚡ Resumen inteligente

Reversing una cuerda en Python utiliza cinco técnicas probadas: un bucle for, un bucle while, la notación de segmento [::-1], la función reversed() y la recursión. LessLos documentos abarcan la sintaxis, ejemplos de código, resultados y pruebas de rendimiento.

  • 🔁 En bucle: Itera y concatena caracteres.
  • 🔂 Mientras que bucle: Decrementar el índice y añadir caracteres.
  • Rebanando [::-1]: Método más rápido, aproximadamente 7 veces más rápido que invertir una lista.
  • 📦 revertido() + unir: Iterador que optimiza el uso de memoria para cadenas largas.
  • 🔄 Recurrencia: Recurre en string[1:] hasta que esté vacío.
  • 🤖 Refactorización de IA: La IA convierte los bucles en segmentación.

Reverse una cadena en Python

Una cadena es una lista ordenada o una secuencia de caracteres. Las cadenas son una de las estructuras de datos que vienen con Python. Mientras trabaja con cuerdas en Python, es posible que quieras tener todos los caracteres invertidos. Un buen ejemplo sería cuando estás creando un juego de palíndromos.

Una cadena invertida tiene su primer carácter como último carácter y así sucesivamente. Sin embargo, Python No viene con una función incorporada para invertir cadenas, pero son métodos que puedes usar.

En este tutorial, aprenderá diferentes métodos para invertir la cadena en Python.

Método 1: Reverse encadenar Python usando un bucle For

El primer método para invertir cadenas es utilizar un bucle for como se muestra en el siguiente fragmento de código:

Python Code:

# function for reversing a string
def reverse_string(string):
    # an empty string for storing reversed string
    reversed_string = ""
    # looping through the string
    for char in string:
        # reversing the string
        reversed_string = char + reversed_string
    # returning a reversed string
    return reversed_string

# the string to reverse
string = "Guru99"
# printing a message
print(f"String Reversal using a for loop")
# printing the original string
print(f"Original String: {string}")
# making a functional call inside a print function using an f-string
print(f"Reversed String: {reverse_string(string)}")

Salida:

String Reversal using a for loop
Original String: Guru99
Reversed String: 99uruG

Code Explicación:

  • En este fragmento de código, podemos usar cadena_inversa() función para la inversión de cuerdas tomando un dado cadena como argumento
  • Dentro de él, podemos crear una cadena vacía para almacenar la cadena invertida, luego estamos mirandoping a través de la cuerda.
  • Los personajes se invierten y se asignan a la cadena_invertida variable.
  • Finalmente, la última línea de la función devuelve la cadena invertida.
  • Para mostrar el resultado, estamos haciendo una llamada funcional dentro del imprimir() funcionar con la ayuda de una cuerda f.

Método 2: Reverse encadenar Python usando un bucle while

El uso del mientras bucle en Python También sería otro método para invertir una cuerda. Entendamos el siguiente fragmento de código:

Python Code:

# declaring a string to reverse
string = "Python"
# initializing an empty string to store the reversed string
reversed_string = ""
# printing a message
print(f"String Reversal using a while loop")
# printing the original string
print(f"Original String: {string}")
# find length of a string and store in count variable
count = len(string)
# a while loop for looping through the string characters
while count > 0:
    # save the value of str[count-1] in reversed_string
    reversed_string += string[count - 1]
    # decrementing index
    count = count - 1
print(f"Reversed String: {reversed_string}")

Salida:

String Reversal using a while loop
Original String: Python
Reversed String: nohtyP

Code Explicación:

  • En esta Python código, estamos declarando una cadena que se va a invertir, luego una cadena vacía para almacenar la cadena invertida.
  • Luego encontramos la longitud de la cuerda que se asigna al contar variable.
  • El cadena[cuenta – 1] en cada iteración recupera los caracteres de la cadena del último al primero.
  • Y los concatena a cadena_invertida y luego disminuye el contar .
  • Finalmente, estamos imprimiendo la cadena invertida.

lavaboping funciona, pero PythonEl operador de segmentación es mucho más conciso.

Método 3: Python Reverse Cadena usando Slicer Operator

Otro método para invertir una cadena es usar un operador de corte; para entenderlo, vea el código a continuación:

Python Code:

# function to reverse a string
def reverse(string):
    # the  slice syntax
    reversed_string = string[::-1]
    return reversed_string

# declaring a string to reverse
string = "Let's guru99"
# printing a message
print(f"String Reversal using Slicer Operator")
# printing the original string
print(f"Original String: {string}")
# making a functional call inside a print function using an f-string
print(f"Reversed String: {reverse(string)}")

Salida:

String Reversal using Slicer Operator
Original String: Let's guru99
Reversed String: 99urug s'teL

Code Explicación:

  • Para crear un contrarrestar () función que toma un cadena como argumento, dentro de él
  • En este ejemplo, tenemos un cadena[::-1] operador de corte para invertir el cadena
  • Luego la cadena invertida se asigna a una nueva variable llamada cadena_invertida
  • Finalmente, se devuelve la nueva cadena invertida.

Método 4: RevInsertar una cadena en Python Usando la función reversed()

También podemos invertir una cadena usando un invertido () Python función, el código quedaría de la siguiente manera:

Python Code Ejemplo:

# function to reverse a string
def reverse(string):
    # reversed() function inside the join() function
    string = "".join(reversed(string))
    # returning the reversed string
    return string

# declaring a string to reverse
string = "guru99"
# printing a message
print(f"String Reversal using reversed() function")
# printing the original string
print(f"Original String: {string}")
# making a functional call inside a print function using an f-string
print(f"Reversed String: {reverse(string)}")

Salida:

String Reversal using reversed() function
Original String: guru99
Reversed String: 99urug

Code Explicación:

  • En este código, tenemos un invertido () función cuyo argumento es un cadena.
  • Dentro de él, hemos inicializado una cadena vacía.
  • Lo concatenamos con la salida de invertido (cadena) mediante el unirse() función.
  • Afuera de invertido () función, hemos declarado una cadena para invertir, luego estamos imprimiendo la cadena original y la cadena invertida.

Método 5: Python Reverse Cadena usando recursión

La recursión significa que una función definida se llama a sí misma. Se dice que una función recursiva es recursiva cuando se llama a sí misma. Para entenderlo mejor, observe el siguiente ejemplo de código:

Python Code:

# a function to reverse a string
def reverse(string):
    # Checking the length of string
    if len(string) == 0:
        return string
    # reversing string if len(string) != 0
    else:
        # recursively calling the reverse() function
        return reverse(string[1:]) + string[0]

# declaring a string to reverse
string = "I love guru99"
# printing a message
print(f"String Reversal using Recursion")
# printing the original string
print(f"Original String: {string}")
# making a functional call inside a print function using an f-string
print(f"Reversed String: {reverse(string)}")

Salida:

String Reversal using Recursion
Original String: I love guru99
Reversed String: 99urug evol I

Code Explicación:

  • En el código anterior, hemos declarado un contrarrestar () función que toma un cadena como argumento, el cuerpo de la función es un si más .
  • El if La declaración comprueba si la longitud de la cadena es equivalente a 0 y devuelve la cadena, mientras que la más declaración llama a la contrarrestar () funciona de forma recursiva, corta el último índice de la cadena y lo agrega al inicio.

Preguntas Frecuentes

El slicing [::-1] es el más rápido. Las pruebas de rendimiento muestran que es aproximadamente 7 veces más rápido que la inversión de listas y 83 veces más rápido que la recursión.

Sí. La IA convierte la inversión del bucle for en segmentación y explica reversed() frente a [::-1].

Las herramientas de IA advierten que += en un bucle es O(n^2) y recomiendan unir o segmentar.

Un iterador perezoso, no una nueva cadena. Use ”.join(reversed(s)) para materializar la cadena invertida cuando sea necesario.

Rara vez. La recursión es elegante pero lenta y se produce PythonLímite de recursión predeterminado de 1000 marcos para cadenas largas. Utilice segmentación en código real.

No. Las cadenas son inmutables en PythonLa inversión devuelve una nueva cadena. La variable original conserva el mismo valor a menos que se le asigne otro valor.

Usa split, invierte la lista y luego únelas: ' '.join(sentence.split()[::-1]). Esto invierte el orden de las palabras conservando la ortografía.

No siempre. Los emojis compuestos y la combinación de caracteres pueden dividirse. Para una inversión segura de grafemas, utilice la expresión regular findall(r'\X', s) antes de invertir.

Resumir este post con: