Chargement de ta page…
Comment inverser une chaîne ou une liste en Python (3 méthodes)
Apprenez les différentes techniques idiomatiques en Python pour inverser des séquences avec la complexité temporelle et mémoire associée.
Publié par Projet Carthage · Mis à jour le
Explications & Fondations Techniques
Le slicing `sequence[::-1]` crée une copie inversée d’une chaîne ou d’une liste en temps linéaire O(n). La séquence d’origine reste inchangée. Une liste est mutable, contrairement à une chaîne.
La fonction intégrée `reversed()` renvoie un itérateur paresseux (lazy iterator). L’itérateur occupe un espace auxiliaire constant O(1) pour une liste ou une chaîne et convient parfaitement aux itérations dans une boucle `for`.
Pour une liste modifiable, la méthode `liste.reverse()` inverse les éléments directement en place sans aucune allocation mémoire supplémentaire (in-place, O(1) espace).
Exemple de Code Pratique
Essayer cet exemple# Méthode 1 : Slicing élégant (chaînes & listes)
texte = "Carthage"
inverse = texte[::-1]
print("Slicing :", inverse) # 'egahtraC'
# Méthode 2 : reversed() puis conversion en liste
mots = ["Python", "IA", "Code"]
print("Itérateur :", list(reversed(mots))) # ['Code', 'IA', 'Python']
# Méthode 3 : Inversion en place, sans copier la liste
nombres = [1, 2, 3, 4, 5]
nombres.reverse()
print("En place :", nombres) # [5, 4, 3, 2, 1]Pièges Fréquents & Mauvaises Pratiques
Tenter d'appeler .reverse() sur une chaîne (str)
chaine = "bonjour"
chaine.reverse() # AttributeErrorchaine = "bonjour"
inverse = chaine[::-1]En Python, les chaînes de caractères sont immuables. La méthode `.reverse()` n'existe que sur les listes mutables.
Oublier que .reverse() renvoie None
liste = [1, 2, 3]
resultat = liste.reverse() # resultat vaut None !liste = [1, 2, 3]
liste.reverse()
print(liste) # [3, 2, 1]Les méthodes mutantes en Python renvoient None pour signaler que la modification a eu lieu directement sur l'objet.
Questions Fréquentes
Quelle est la méthode la plus rapide pour inverser une chaîne en Python ?▾
Le slicing est une option concise pour produire une copie. La vitesse dépend de l’interpréteur et des données : mesurez avec vos entrées avant de choisir une optimisation.
Comment inverser une liste sans créer de copie ?▾
Utilisez `ma_liste.reverse()`. L'inversion est effectuée directement sur la zone mémoire existante avec une complexité spatiale de O(1).
Maîtrisez Python pas à pas
Résolvez des défis interactifs directement dans votre navigateur avec retour immédiat et indices progressifs.
