Comment inverser une chaîne en Python

Apprenez à inverser une chaîne en Python à l'aide du découpage, de la fonction reversed() et de la concaténation de boucles avec des exemples de code visuel.

Essayez cette solution dans l'éditeur

Aperçu

La manipulation de chaînes est une fonctionnalité essentielle dans le traitement de texte, l'analyse et la résolution algorithmique de problèmes. Inverser une chaîne est un exercice classique qui montre la flexibilité des structures de données de Python. Étant donné que les chaînes en Python sont immuables (ce qui signifie qu'elles ne peuvent pas être modifiées après la création), l'inversion d'une chaîne renvoie toujours une nouvelle chaîne.

Le moyen le plus courant, le plus idiomatique et le plus rapide d'inverser une chaîne en Python consiste à utiliser la notation slice : `my_string[::-1]`. La syntaxe de tranche prend trois paramètres `[start:stop:step]`. En omettant `start` et `stop` et en définissant `step` sur `-1`, vous dites à Python de parcourir la chaîne en arrière de la fin au début. Sous le capot, cette opération de découpage est implémentée dans du code C optimisé, ce qui la rend exceptionnellement rapide.

Alternativement, vous pouvez utiliser la fonction intégrée `reversed()`, qui renvoie un itérateur qui renvoie les caractères dans l'ordre inverse. Pour reconvertir cet itérateur en chaîne, vous les joignez en utilisant `"".join(reversed(text))`. Cette méthode est très lisible et fonctionne bien si vous souhaitez parcourir directement les caractères inversés sans créer au préalable une nouvelle chaîne.

Sortie de code et d'exécution

Ce script montre l'inversion d'une chaîne à l'aide du découpage, de la jointure + inversée et d'une implémentation de boucle manuelle.

reverse_string.py
Essayez dans l'éditeur
text = "PyRun"

# Method 1: Slicing (Fastest & most common)
reversed_slice = text[::-1]
print("Slicing:", reversed_slice)

# Method 2: reversed() and join() (Very readable)
reversed_join = "".join(reversed(text))
print("Reversed join:", reversed_join)

# Method 3: Loop (Useful for demonstrating logic)
reversed_loop = ""
for char in text:
    reversed_loop = char + reversed_loop
print("Loop method:", reversed_loop)
Sortie terminale
Slicing: nuRyP
Reversed join: nuRyP
Loop method: nuRyP

Mise en œuvre étape par étape

  • Utilisez la notation slice [::-1] pour le moyen le plus rapide et le plus pythonique d'inverser une chaîne.
  • Utilisez "".join(reversed(text)) pour inverser une chaîne en utilisant une approche basée sur un itérateur.
  • N'oubliez jamais que l'inversion d'une chaîne crée un nouvel objet chaîne en mémoire.

Foire aux questions

Le découpage de chaîne est-il le moyen le plus rapide d'inverser une chaîne ?

Oui, la notation slice est implémentée en C et s'exécute beaucoup plus rapidement que les boucles ou les expressions génératrices.

Pourquoi ne puis-je pas inverser une chaîne sur place ?

Les chaînes en Python sont immuables, ce qui signifie que leurs caractères ne peuvent pas être modifiés sur place. Vous devez construire une nouvelle chaîne.

Sujets connexes

Ressources Python recommandées

Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.