Comment inverser une chaîne dans Python (5 méthodes)

⚡ Résumé intelligent

Reversing a string in Python utilise cinq techniques éprouvées : une boucle for, une boucle while, la notation slice [::-1], la fonction reversed() et la récursivité. LessCes ressources couvrent la syntaxe, des exemples de code, les résultats et les tests de performance.

  • (I.e. Pour la boucle: Itérer et concaténer les caractères.
  • 🔂 Alors que la boucle: Décrémenter l'index et ajouter des caractères.
  • | Découpage [::-1] : Méthode la plus rapide, environ 7 fois plus rapide que l'inversion de liste.
  • 📦 inversé() + joindre : Itérateur économe en mémoire pour les chaînes de caractères longues.
  • (I.e. Récursivité : Récursivement sur string[1:] jusqu'à ce que vide.
  • 🤖 Refonte de l'IA : L'IA convertit les boucles en découpage.

Reverse une chaîne de caractères dans Python

Une chaîne est une liste ordonnée ou une séquence de caractères. Les chaînes sont l'une des structures de données fournies avec Python. Comme vous travaillez avec des chaînes dans Python, vous pourriez vouloir inverser tous les caractères. Un bon exemple serait lorsque vous créez un jeu palindrome.

Une chaîne inversée a son premier caractère comme dernier caractère et ainsi de suite. Cependant, Python n'est pas livré avec une fonction intégrée pour inverser les chaînes, mais ce sont des méthodes que vous pouvez utiliser.

Dans ce tutoriel, vous apprendrez différentes méthodes pour inverser la chaîne dans Python.

Méthode 1: Reverse chaîne dans Python utiliser une boucle For

La première méthode pour inverser des chaînes consiste à utiliser une boucle for comme dans l'extrait de code ci-dessous :

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)}")

Sortie :

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

Code Explication:

  • Dans cet extrait de code, nous pouvons utiliser chaîne_inverse() fonction d'inversion de chaîne prenant une valeur donnée string comme argument.
  • À l'intérieur, nous pouvons créer une chaîne vide pour stocker la chaîne inversée, puis nous sommes prêts.ping à travers la ficelle.
  • Les caractères sont inversés et attribués au chaîne_inversée variable.
  • Enfin, la dernière ligne de la fonction renvoie la chaîne inversée.
  • Pour afficher la sortie, effectuez un appel fonctionnel à l'intérieur du impression() fonctionner à l’aide d’une f-string.

Méthode 2: Reverse chaîne dans Python utiliser une boucle While

L'utilisation d'un while boucle Python serait également une autre méthode pour inverser une chaîne. Comprenons l'extrait de code ci-dessous :

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}")

Sortie :

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

Code Explication:

  • Dans ce nouvel article concernant notre nouveau projet Python code, nous déclarons une chaîne à inverser, puis une chaîne vide pour stocker la chaîne inversée.
  • Nous trouvons alors la longueur de chaîne qui est affectée au compter variable.
  • Le chaîne[compte – 1] à chaque itération, récupère les caractères de la chaîne du dernier au premier.
  • Et les concatène à chaîne_inversée puis décrémente le compter valeur.
  • Enfin, nous imprimons la chaîne inversée.

Cabinetsping fonctionne, mais PythonL'opérateur de découpage de 's est beaucoup plus concis.

Méthode 3: Python Reverse Chaîne utilisant Slicer Operator

Une autre méthode pour inverser une chaîne consiste à utiliser un opérateur slice, pour vous y retrouver, voir le code ci-dessous :

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)}")

Sortie :

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

Code Explication:

  • Créer un inverser () fonction qui prend un string comme argument, à l'intérieur
  • Dans cet exemple, nous avons un chaîne[::-1] opérateur de tranche pour inverser le string
  • Ensuite, la chaîne inversée est affectée à une nouvelle variable appelée chaîne_inversée
  • Enfin, la nouvelle chaîne inversée est renvoyée

Méthode 4: Revinsérer une chaîne dans Python en utilisant la fonction reversed()

Nous pouvons également inverser une chaîne en utilisant un renversé() Python fonction, le code ressemblerait à ceci :

Python Code Exemple :

# 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)}")

Sortie :

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

Code Explication:

  • Dans ce code, nous avons un renversé() fonction dont l'argument est un string.
  • À l’intérieur, nous avons initialisé une chaîne vide.
  • Nous le concaténons avec la sortie de inversé (chaîne) en utilisant la fonction joindre() la fonction.
  • En dehors de renversé() fonction, nous avons déclaré une chaîne à inverser, puis nous imprimons la chaîne d'origine et la chaîne inversée.

Méthode 5: Python Reverse Chaîne utilisant la récursivité

La récursivité signifie une fonction définie qui s'appelle elle-même. Une fonction récursive est dite récursive lorsqu’elle s’appelle elle-même. Pour mieux le comprendre, regardez l'exemple de code suivant :

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)}")

Sortie :

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

Code Explication:

  • Dans le code ci-dessus, nous avons déclaré un inverse () fonction qui prend un string en argument, le corps de la fonction est un si autre déclaration.
  • Le if L'instruction vérifie si la longueur de la chaîne est équivalente à 0 et renvoie la chaîne, tandis que l'instruction d'autre déclaration appelle le inverser () fonction de manière récursive, coupe le dernier index de la chaîne et l'ajoute au début.

FAQ

Le découpage [::-1] est le plus rapide. Les tests de performance montrent qu'il est environ 7 fois plus rapide que l'inversion de liste et 83 fois plus rapide que la récursivité.

Oui. L'IA convertit l'inversion de boucle for en découpage et explique la différence entre reversed() et [::-1].

Les outils d'IA avertissent que += dans une boucle est O(n^2) et recommandent de joindre ou de découper.

Il s'agit d'un itérateur paresseux, et non d'une nouvelle chaîne. Utilisez `".join(reversed(s))` pour générer la chaîne inversée si nécessaire.

Rarement. La récursivité est élégante mais lente et gourmande en ressources. PythonLa limite de récursion par défaut est de 1 000 images pour les chaînes longues. Utilisez le découpage dans votre code.

Non. Les chaînes de caractères sont immuables. PythonL'inversion renvoie une nouvelle chaîne de caractères. La variable d'origine conserve sa valeur, sauf si elle est réassignée.

Utilisez la fonction `split`, inversez la liste, puis `join` : `' '.join(sentence.split()[::-1])`. Cela inverse l'ordre des mots tout en préservant l'orthographe.

Pas toujours. Les émojis composés et les caractères combinés peuvent se scinder. Pour une inversion sans risque pour les graphèmes, utilisez l'expression régulière `findall(r'\X', s)` avant d'inverser.

Résumez cet article avec :