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.
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.
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)Slicing: nuRyP
Reversed join: nuRyP
Loop method: nuRyPMise 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
Apprenez à diviser une chaîne en une liste en Python à l'aide de la méthode split(). Explorez le fractionnement par espaces, virgules, nouvelles lignes et limitez le nombre de fractionnements.
Comment remplacer des caractères dans une chaîne en PythonDécouvrez comment remplacer des caractères ou des sous-chaînes dans des chaînes Python. Maîtrisez la méthode replace(), comptez les limites et utilisez la traduction pour plusieurs caractères.
Ressources Python recommandées
Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.
Variables et types de données Python expliqués
Comprendre les variables Python et les types de données de base (chaînes, entiers, flottants, booléens). Un guide complet pour débutants sur l'affectation de mémoire en Python.
Aide-mémoire sur les méthodes de chaîne Python
Un guide de référence complet pour la manipulation des chaînes Python. Maîtrisez le formatage, la recherche, le fractionnement, le remplacement et la vérification des propriétés des chaînes.
Python vs JavaScript : quel langage de programmation est le meilleur ?
Une comparaison complète entre Python et JavaScript. Explorez les différences de syntaxe, les performances, les cas d'utilisation (backend et frontend) et des exemples de codage.