Sur cette page
Chaînes Python : convertir, nettoyer, rechercher et formater
Les chaînes sont le type de données que vous touchez le plus souvent en Python : les saisies des utilisateurs, le contenu des fichiers, les pages web et les lignes de CSV arrivent tous sous forme de texte. Elles sont faciles à sous-estimer, car une chaîne Python est immuable : aucune méthode ne la modifie sur place ; chaque opération renvoie une nouvelle chaîne. Cette page organise les 115 guides DelftStack consacrés aux chaînes selon le travail que vous êtes en train de faire, le long de quatre lignes de tâches : convertir le texte vers d’autres types et dans l’autre sens, nettoyer les caractères qui n’y ont pas leur place, rechercher et vérifier ce qu’une chaîne contient, et formater ou remplacer du texte pour l’affichage.
Le parcours d’apprentissage des chaînes
Commencez par cinq minutes de bases : comment les chaînes se construisent, s’indexent et se découpent en tranches, et pourquoi l’immuabilité signifie que vous devez toujours conserver la valeur de retour. Apprenez ensuite à rechercher et à nettoyer : find(), l’opérateur in, strip() et replace() couvrent l’essentiel du travail quotidien sur le texte. Passez ensuite à la conversion, où les chaînes échangent leur place avec les listes, les nombres, les dictionnaires et les octets. Terminez par le formatage et le remplacement, où les f-strings sont le choix par défaut et où les styles plus anciens n’apparaissent que là où ils gagnent encore leur place. Chaque étape ci-dessous est un groupe de cette page, dans l’ordre où il faut les apprendre.
Les bases en cinq minutes : construire, joindre et répéter
Une chaîne est une suite de caractères entre guillemets simples ou doubles ; les guillemets triples s’étendent sur plusieurs lignes, et l’indexation associée aux tranches permet de lire n’importe quelle partie. Deux faits font l’essentiel du travail : len() mesure une chaîne, et construire une chaîne plus longue produit toujours une nouvelle valeur.
- Répéter la chaîne N fois en Python — Multiplie avec
*pour un nombre fixe de copies, puis répète et découpe en tranches pour atteindre une longueur cible exacte, en validant les sources vides et les longueurs négatives. - Copier la chaîne en Python — Six voies pour dupliquer — concaténation avec une chaîne vide, tranche complète,
str(),%,format()et f-strings — après avoir expliqué pourquoi l’immuabilité fait que les deux variables partagent une seule valeur. - Créer une chaîne multi-lignes en Python — Les guillemets triples pour un vrai texte multiligne, la barre oblique inverse et la concaténation entre parenthèses pour une seule ligne logique, et
textwrap.fill()pour une sortie à largeur fixe. - Ajouter une chaîne à une autre en Python —
+contrestr.join();join()l’emporte pour de nombreuses pièces, car chaque+construit une nouvelle chaîne intermédiaire.
Convertir : des chaînes vers les listes, les nombres et inversement
C’est dans la conversion que le travail sur les chaînes gagne sa valeur : les données arrivent sous forme de texte et servent à autre chose. Les listes sont la porte la plus fréquentée, les nombres viennent ensuite ; les conteneurs s’aplatissent avec str() ou join(), et les octets ne traversent que par des encodages explicites. Un voisin vit ailleurs : convertir un datetime en chaîne relève des guides Datetime — voir la section Datetime du pilier Python.
- Comment convertir une chaîne de caractères en liste en Python — Le guide phare :
list()pour les caractères,split()pour les mots et les champs,ast.literal_eval()pour le texte littéral — jamaiseval()sur une entrée que vous ne contrôlez pas. - Convertir un tuple en chaîne en Python —
str()conserve la structure du tuple,join()donne un résultat propre et séparé, et un générateur avecstr()par élément gère les types mélangés. - Convertir un dictionnaire en chaîne en Python — Quatre voies : une boucle écrite à la main,
str(),json.dumps()pour l’échange etpprint.pformat()pour une imbrication lisible. - Équivalent de tostring() en Python — Python n’a pas de
toString(): utilisezstr()pour une valeur,join()pour plusieurs, les f-strings pour les messages,__str__()pour vos propres classes. - Convertir une liste de chaînes de caractères en entier en Python — La même conversion de quatre façons : compréhension de liste,
map(int, ...), une boucle explicite et NumPy pour les grands ensembles de données. - Convertir Bytearray en String en Python — Montre pourquoi
bytes()laisse derrière une représentationb'...'et pourquoibytearray.decode()renvoie le texte réel. - Convertir une chaîne en binaire en Python — Sépare le binaire par point de code via
ord()du binaire des octets encodés viabytearray()avec remplissage08b. - Convertir une chaîne en booléen en Python — Commence par le piège —
bool("False")vautTrue— puis construit un analyseur de jetons explicite qui lève une erreur sur les orthographes inconnues.
Nettoyer et supprimer : retirer ce qui n’a pas sa place
Le nettoyage est le terrain de jeu local de ce cluster : les pages aspirées, les exports et les saisies des utilisateurs arrivent avec des caractères qui n’ont jamais été invités. Choisissez selon la forme de la saleté : replace() pour une sous-chaîne connue, translate() avec une table pour un ensemble entier de caractères en une fois, et les expressions régulières quand la saleté est un motif, pas un littéral.
- Façons de supprimer xa0 d’une chaîne en Python — Deux attaques contre l’espace insécable invisible : la décomposition par
unicodedata.normalize("NFKD", ...)et unreplace("\xa0", " ")direct. - Supprimer les virgules de la chaîne en Python —
replace(",", "")pour chaque virgule, l’argumentcountpour la première seulement,re.sub()pour le travail sur les motifs. - Comment enlever la ponctuation d’une chaîne de caractères en Python — La boîte à outils complète : un filtre contre
string.punctuation, la substitution par l’expression régulière[^\w\s], et une tablestr.translate()rapide construite parmaketrans(). - Supprimer les citations de la chaîne en Python —
replace()efface les guillemets partout ;strip('"')ne retire que la paire qui entoure et laisse intacts les guillemets intérieurs. - Supprimer les caractères spéciaux de la chaîne en Python — Définit d’abord ce qui est « spécial », puis applique un filtre
isalnum(), un ensembletranslate(), ou une expression régulière ASCII uniquement. - Enlever \n de la chaîne en Python —
replace()pour les sauts de ligne,split()plusjoin()pour recoudre les lignes avec des espaces simples, et les expressions régulières pour les espaces mixtes. - Comment supprimer le dernier caractère d’une chaîne de caractères en Python — Les tranches s’en chargent :
s[:-1]supprime le dernier caractère, et l’indexation négative se généralise aux trois derniers.
Rechercher, vérifier et compter
La recherche est la plus grande demande insatisfaite de ce cluster : les lecteurs connaissent le caractère qu’ils veulent et ont besoin de sa position, de son nombre, ou d’une réponse par oui ou non. Gardez la répartition du travail claire : in répond à la question « est-ce présent », find() répond « où est le premier », index() répond « où » et proteste bruyamment quand il n’y a aucune correspondance, et count() répond « combien ».
- Rechercher un caractère dans une chaîne en Python —
find()pour la première correspondance,rfind()pour la dernière,index()quand l’absence doit lever une erreur, et une boucleenumerate()pour chaque index. - Compter les occurrences d’un caractère dans une chaîne en Python —
str.count()pour un caractère, avec sa règle des sous-chaînes sans chevauchement ;collections.Counterquand il faut compter chaque caractère. - Vérifier si une chaîne contient un mot en Python —
inpour le test simple, en notant que"is" in "This"est vrai ; une expression régulière avec frontières de mot\bquand le mot entier compte. - Vérifier que la variable est une chaîne ou non en Python —
isinstance(value, str)par défaut, la comparaisontype()plus stricte qui manque les sous-classes, et des variantes en try-except. - Utiliser if avec des chaînes de caractères en Python — Des conditions bâties sur
==, l’appartenance avecinet la comparaison à casse normalisée ;isteste l’identité, pas le texte. - Python Rechercher toutes les occurrences dans la chaîne —
count()avec des bornes pour un total rapide, et une compréhension avecstartswith()qui renvoie chaque index.
Casse, comparaison et remplissage
C’est sur la casse que les comparaisons déraillent en silence : Python compare par point de code Unicode, donc la casse et les lettres spéciales comptent toutes. Normalisez avant de comparer — lower() ou upper() pour le texte ordinaire, casefold() quand les paires Unicode doivent correspondre — et remplissez avec ljust(), rjust(), center() ou zfill() pour la présentation.
- Comparaison de chaînes insensibles à la casse en Python — Normalise les deux côtés avec
lower()ouupper(), puis présente l’argument Unicode en faveur decasefold(), qui rendstraßeetSTRASSEéquivalents. - Chaîne de remplissage avec des espaces en Python — Le banc complet :
ljust(),rjust(),center()avec des caractères de remplissage, plus les équivalents en%,format()et f-strings pour une sortie alignée. - Comparer des chaînes en Python — La référence des opérateurs :
==et!=pour l’égalité,<et>pour l’ordre lexicographique décidé par le premier point de code différent. - Comparer deux chaînes caractère par caractère en Python — Apparie les caractères avec
zip()et compte les positions correspondantes, en traitant explicitement les entréesNoneet les longueurs inégales.
Formater et remplacer
Pour du code nouveau, formater signifie f-strings : les valeurs siègent dans le modèle, là où vous pouvez les lire, et les spécifications de format contrôlent la largeur et la précision. str.format() reste le bon choix quand le modèle vit séparément ou est réutilisé, et le formatage en % survit dans le code ancien que vous continuerez de croiser. Le remplacement obéit à l’immuabilité comme tout le reste : vous ne modifiez jamais une chaîne, vous construisez celle qui est corrigée.
- Remplacer le caractère dans une chaîne en Python — Conversion en liste et affectation par index, découpage autour d’une position connue, ou
replace()pour chaque correspondance — chacun renvoie une nouvelle chaîne. - Différence entre %s et %d dans le formatage de chaîne Python —
%saccepte n’importe quelle valeur via la conversionstr();%dexige un entier et tronque les flottants — la distinction héritée derrière la plupart des surprises. - The sprintf() Function in Python — Python n’a pas de
sprintf(); le travail revient à l’opérateur%, àformat(), aux f-strings, ou à un wrapper fait main. - Remplacer le caractère dans la chaîne à l’index en Python — L’exemple
Meatloafdes deux façons — découper et reconstruire, ou muter une copie en liste — étendu à plusieurs index.
Carte des méthodes de chaîne
Python livre 47 méthodes de chaîne intégrées, et cette carte trouve rapidement la bonne. Lisez-la par verbe : la famille is* vérifie, les méthodes de casse transforment, split et join démontent et reconstruisent, les méthodes de recherche localisent. Là où un guide approfondit une méthode, la troisième colonne y renvoie ; une cellule vide signifie que la description en une ligne suffit.
| Méthode | Ce qu’elle fait | Pour approfondir |
|---|---|---|
capitalize() |
Met en majuscule le premier caractère et le reste en minuscules | Pour approfondir |
casefold() |
Minuscules agressives, pensées pour la comparaison insensible à la casse | Pour approfondir |
center() |
Centre la chaîne dans un champ de la largeur donnée | Pour approfondir |
count() |
Compte les occurrences sans chevauchement d’une sous-chaîne | Pour approfondir |
encode() |
Encode la chaîne en octets dans l’encodage choisi | Pour approfondir |
endswith() |
Teste si la chaîne se termine par un suffixe | |
expandtabs() |
Remplace les caractères de tabulation par des espaces | |
find() |
Plus petit index d’une sous-chaîne, ou -1 lorsqu’elle est absente | Pour approfondir |
format() |
Formate des valeurs dans des espaces réservés {} | |
format_map() |
Comme format(), avec des valeurs prises dans un mapping | |
index() |
Plus petit index d’une sous-chaîne ; lève ValueError lorsqu’elle est absente | Pour approfondir |
isalnum() |
Vrai lorsque chaque caractère est une lettre ou un chiffre | Pour approfondir |
isalpha() |
Vrai lorsque chaque caractère est alphabétique | |
isascii() |
Vrai lorsque chaque caractère est ASCII | |
isdecimal() |
Vrai lorsque chaque caractère est un chiffre décimal | |
isdigit() |
Vrai lorsque chaque caractère est un chiffre | Pour approfondir |
isidentifier() |
Vrai lorsque la chaîne est un identifiant Python valide | |
islower() |
Vrai lorsque toutes les lettres sont en minuscules | |
isnumeric() |
Vrai lorsque chaque caractère est numérique | |
isprintable() |
Vrai lorsque chaque caractère est imprimable | |
isspace() |
Vrai lorsque chaque caractère est un espace | |
istitle() |
Vrai lorsque la chaîne est en casse de titre | |
isupper() |
Vrai lorsque toutes les lettres sont en majuscules | |
join() |
Joint un itérable de chaînes en utilisant cette chaîne comme séparateur | Pour approfondir |
ljust() |
Justifie à gauche dans un champ de la largeur donnée | Pour approfondir |
lower() |
Renvoie une copie en minuscules | Pour approfondir |
lstrip() |
Retire les caractères en tête (les espaces par défaut) | |
maketrans() |
Construit une table de traduction pour translate() | Pour approfondir |
partition() |
Scinde au premier séparateur en un tuple de trois parties | |
removeprefix() |
Retire un préfixe lorsqu’il est présent | |
removesuffix() |
Retire un suffixe lorsqu’il est présent | |
replace() |
Remplace les occurrences d’une sous-chaîne par une autre | Pour approfondir |
rfind() |
Plus grand index d’une sous-chaîne, ou -1 lorsqu’elle est absente | Pour approfondir |
rindex() |
Plus grand index d’une sous-chaîne ; lève ValueError lorsqu’elle est absente | |
rjust() |
Justifie à droite dans un champ de la largeur donnée | Pour approfondir |
rpartition() |
Scinde au dernier séparateur en un tuple de trois parties | |
rsplit() |
Scinde sur un séparateur, en comptant depuis la droite | |
rstrip() |
Retire les caractères en queue (les espaces par défaut) | |
split() |
Scinde sur un séparateur en une liste | Pour approfondir |
splitlines() |
Scinde aux limites de ligne en une liste | |
startswith() |
Teste si la chaîne commence par un préfixe | Pour approfondir |
strip() |
Retire les caractères en tête et en queue | Pour approfondir |
swapcase() |
Renvoie une copie avec la casse de chaque caractère inversée | |
title() |
Renvoie une copie en casse de titre, chaque mot commençant par une majuscule | |
translate() |
Mappe les caractères à travers une table de traduction | Pour approfondir |
upper() |
Renvoie une copie en majuscules | Pour approfondir |
zfill() |
Rembourre avec des zéros en tête jusqu’à la largeur donnée | Pour approfondir |
Questions fréquentes
Comment convertir une chaîne en liste en Python ?
Décidez ce qu’un élément doit être, puis choisissez l’outil qui correspond. list(text) donne un élément par caractère ; text.split() donne des mots, et text.split(",") donne des champs séparés par un délimiteur, en préservant les champs vides. Pour un texte qui ressemble déjà à une liste Python, analysez-le avec ast.literal_eval() et vérifiez que le résultat est bien une liste. N’utilisez jamais eval() sur une entrée que vous ne contrôlez pas. Le parcours complet se trouve dans Comment convertir une chaîne de caractères en liste en Python.
Comment vérifier si une chaîne contient une sous-chaîne ou un mot ?
Pour un simple test de sous-chaîne, utilisez l’opérateur in : "word" in text renvoie un booléen et respecte la casse. Quand il vous faut aussi la position, find() renvoie le premier index ou -1, tandis qu’index() lève ValueError à la place. Notez qu’in correspond aussi à l’intérieur de mots plus grands — "is" in "This" est vrai — donc, pour un mot entier, tokenisez ou utilisez une expression régulière avec des frontières \b, comme le montre Vérifier si une chaîne contient un mot en Python.
Comment retirer la ponctuation ou les caractères spéciaux d’une chaîne ?
Définissez d’abord ce qui doit partir : la ponctuation seulement, ou tout ce qui n’est ni une lettre ni un chiffre. Pour la ponctuation, filtrez contre string.punctuation, substituez avec l’expression régulière [^\w\s], ou supprimez un ensemble entier en une fois avec une table str.translate() construite par maketrans() — l’option la plus rapide. Pour un nettoyage plus large, un filtre isalnum() conserve les lettres et les chiffres Unicode. Comment enlever la ponctuation d’une chaîne de caractères en Python passe chaque variante en revue.
Pourquoi Python dit-il « not all arguments converted during string formatting » ?
Ce TypeError vient du formatage en % : le modèle contient moins d’espaces réservés que le tuple de valeurs que vous avez fourni, donc Python arrive à la fin du modèle avec des arguments en trop — par exemple "Value: " % (1, 2). Donnez à chaque valeur exactement un espace réservé, enveloppez une valeur unique dans un tuple à un élément, et échappez un signe pour cent littéral en %%`. Un guide dédié à cette erreur la dissèque cas par cas.
Existe-t-il un toString() en Python ?
Non. Python n’a pas de méthode toString() ; la chercher est une habitude héritée de Java. L’équivalent est la fonction intégrée str(value), qui renvoie une chaîne lisible pour les nombres, les collections et la plupart des objets. Utilisez join() pour combiner de nombreuses chaînes, les f-strings pour construire des messages, et définissez __str__() sur vos propres classes pour contrôler leur affichage. Notez que str() produit du texte d’affichage, pas du JSON ni du CSV. Voir Équivalent de tostring() en Python.
Comment remplacer un caractère à un index précis ?
Vous ne pouvez pas affecter dans une chaîne — text[2] = "m" lève TypeError, car les chaînes sont immuables. Construisez le remplacement à la place : découpez autour de la position, text[:2] + "m" + text[3:], ou convertissez en liste, affectez à l’index, et rejoignez avec "".join(...). Les deux renvoient une nouvelle chaîne et laissent l’originale intacte ; validez l’index contre len(text) lorsqu’il vient d’une saisie utilisateur. Remplacer le caractère dans la chaîne à l’index en Python montre les deux méthodes.
Tous les guides sur les chaînes Python
Bases
- Copier la chaîne en Python
- Répéter la chaîne N fois en Python
- Créer une chaîne multi-lignes en Python
- Boucle sur une chaîne en Python
- Ajouter une chaîne à une autre en Python
- Concaténer les valeurs String et Int en Python
- Ajouter un caractère à une chaîne en Python
- Équivalent de String Builder en Python
- Insérer une chaîne de caractères dans une chaîne en Python
- Correction de l’erreur String Must Be Indices en Python
Convertir
- Comment convertir une chaîne de caractères en liste en Python
- Convertir un tuple en chaîne en Python
- Convertir une liste de chaînes de caractères en entier en Python
- Convertir Bytearray en String en Python
- Convertir un dictionnaire en chaîne en Python
- Équivalent de tostring() en Python
- Comment convertir une chaîne de caractères en Float ou Int en Python
- Comment convertir un float en chaîne en Python
- Convertir une chaîne en Unicode en Python
- Convertir une chaîne en binaire en Python
- Convertir une chaîne en booléen en Python
- Comment convertir un entier en chaîne de caractères en Python
- Formater un nombre flottant en chaîne en Python
- Convertir une liste en chaîne séparée par des virgules en Python
- Comment convertir une liste en chaîne de caractères en Python
- Concaténer la liste de chaînes en Python
- Diviser une chaîne en tableau de caractères en Python
- How to Parse String to List in Python
- Comment diviser une chaîne en fonction de plusieurs délimiteurs en Python
- Fractionner une chaîne par WhiteSpace en Python
- Diviser la chaîne en deux en Python
- Convertir une chaîne en valeur ASCII en Python
- Convertir les caractères Unicode en chaîne ASCII en Python
- Convertir une chaîne en double en Python
- Convertir une chaîne en décimal en Python
- Comment convertir des octets en chaîne de caractères en Python 2 et Python 3
- Comment convertir une chaîne de caractères en octets en Python
- How to Convert Datetime to String in Python
- Comment convertir une chaîne de caractères en datetime en Python
- Convertir une chaîne en nom de variable en Python
- How to Stringify JSON in Python
- Convertir une chaîne en une valeur flottante en Python
- Convertir une chaîne en entier en Python
Nettoyer et supprimer
- Façons de supprimer xa0 d’une chaîne en Python
- Supprimer les virgules de la chaîne en Python
- Comment enlever la ponctuation d’une chaîne de caractères en Python
- Supprimer les citations de la chaîne en Python
- Supprimer les caractères spéciaux de la chaîne en Python
- Enlever \n de la chaîne en Python
- Comment supprimer le dernier caractère d’une chaîne de caractères en Python
- Supprimer certains caractères de la chaîne en Python
- Supprimer les nombres de la chaîne en Python
- Supprimer la nouvelle ligne de la chaîne en Python
- Enlever le premier caractère de la chaîne en Python
- Supprimer les parenthèses de la chaîne en Python
- Comment supprimer une sous-chaîne de la chaîne en Python
- Comment supprimer les espaces dans une chaîne de caractères en Python
Rechercher, vérifier et compter
- Vérifier si une chaîne contient un mot en Python
- Vérifier que la variable est une chaîne ou non en Python
- Comment vérifier qu’une chaîne de caractères contient un nombre en Python
- Vérifier si une chaîne de caractères est entière en Python
- Rechercher un caractère dans une chaîne en Python
- Compter les occurrences d’un caractère dans une chaîne en Python
- Utiliser if avec des chaînes de caractères en Python
- Python Rechercher toutes les occurrences dans la chaîne
- Vérifier si une chaîne est un nombre en Python
- Comment vérifier si une chaîne de caractères contient une sous-chaîne en Python
- How to Check if a Word Exists in a String in Python
- Trouver tous les index d’un caractère dans une chaîne Python
- Extraire une sous-chaîne d’une chaîne en Python
- Comment extraire des nombres d’une chaîne de caractèresen Python
- Compter les mots dans une chaîne en Python
- How to Count Vowels in a String Using Python
- Sous-chaîne commune la plus longue en Python
- Trouver une chaîne de caractères dans une liste en Python
- How to Match Fuzzy String in Python
- Python vérifie si la liste contient une chaîne
- Python Rechercher une chaîne dans un fichier
- Comment vérifier si une chaîne est vide de manière pythonique
Casse, comparaison et remplissage
- Comparaison de chaînes insensibles à la casse en Python
- Chaîne de remplissage avec des espaces en Python
- Comparer des chaînes en Python
- Comparer deux chaînes caractère par caractère en Python
- Pad String avec des zéros en Python
- Capitalisation de chaîne en Python
- Chaîne justifiée à droite en Python
- Python Trier la chaîne par ordre alphabétique
Formater et remplacer
- The sprintf() Function in Python
- Remplacer le caractère dans une chaîne en Python
- Différence entre %s et %d dans le formatage de chaîne Python
- Remplacer le caractère dans la chaîne à l’index en Python
- Interpolation de chaîne en Python
- How to Solve the TypeError: Not All Arguments Converted During String Formatting in Python
- Corriger TypeError : Not Enough Arguments for Format String Error en Python
- How to Fix TypeError: Non-Empty Format String Passed to Object.format in Python
- Remplacer la chaîne dans le fichier à l’aide de Python
- Imprimer la chaîne et la variable en Python
Plus d’articles sur les chaînes
- Crypter une chaîne Python
- Appeler une fonction à partir d’un nom de chaîne en Python
- B devant la chaîne en Python
- Chaîne brute en Python
- Chaîne brute et chaîne Unicode en Python
- Inverser une chaîne en Python
- Permutations d’une chaîne en Python
- Lire le fichier dans une chaîne en Python
- Écrire une chaîne dans un fichier en Python
- How to Print String to Text File Using Python
- Envoyer une chaîne à l’aide de Python Socket
- Citer la barre oblique inverse dans la chaîne en Python
- EOL lors de l’analyse du littéral de chaîne en Python
- How to Fix TypeError: str Returned Non-String but Printing Output
- Accéder aux Docstrings en Python
- Modèles de Docstring les plus courants en Python
- Comment effectuer le Xor bit à bit de deux chaînes en Python
- Générer des chaînes aléatoires en Python
Voilà le cluster des chaînes d’un bout à l’autre. Pour la carte plus large — listes, dictionnaires, fichiers, dates et erreurs — revenez au pilier Python, où les groupes Dictionary et List siègent à côté du groupe Strings que cette page développe.