Méthodes de chaînes en Python : split, join, replace, strip et plus

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Introduction aux chaînes de caractères en Python

Que sont les chaînes en Python

Les chaînes de caractères en Python sont des séquences ordonnées de caractères. Elles constituent l'un des types de données fondamentaux pour le traitement de l'information textuelle. Les chaînes sont délimitées par des guillemets simples ('chaîne'), des guillemets doubles ("chaîne") ou des triples guillemets pour le texte multiligne ('''multiligne''' ou """texte""").

Particularités des chaînes en Python

Nature orientée objet des chaînes

Les chaînes en Python sont des objets de la classe str. Cela signifie que chaque chaîne a accès à de nombreuses méthodes intégrées pour le traitement et la manipulation du texte.

Opérations prises en charge

Python offre un large éventail d'opérations pour travailler avec les chaînes :

  • L'indexation pour accéder à des caractères individuels
  • Le slicing pour extraire des sous-chaînes
  • La concaténation pour fusionner des chaînes
  • La répétition de chaînes
  • La recherche et le remplacement de sous-chaînes

Immutabilité des chaînes

Les chaînes en Python sont des objets immuables. Lors de toute modification d'une chaîne, un nouvel objet est créé, tandis que la chaîne d'origine reste inchangée. Cette particularité est importante à comprendre lorsqu'on travaille avec de grands volumes de données textuelles ou dans des boucles où la performance est cruciale.

Opérations fondamentales sur les chaînes

Concaténation de chaînes

La fusion de chaînes en Python s'effectue avec l'opérateur "+" :

a = "Bonjour"
b = "le monde"
resultat = a + " " + b  # "Bonjour le monde"

Répétition de chaînes

L'opérateur "*" permet de répéter une chaîne un nombre donné de fois :

s = "Python"
print(s * 3)  # PythonPythonPython

Indexation et slicing

Python permet d'accéder aux caractères d'une chaîne par index et d'extraire des sous-chaînes via le slicing :

texte = "Python"
print(texte[0])    # P (premier caractère)
print(texte[-1])   # n (dernier caractère)
print(texte[1:4])  # yth (caractères de l'index 1 à 3)

Méthodes de fractionnement et de jointure de chaînes

La méthode split()

Description et syntaxe de base

La méthode split() est l'une des méthodes les plus utilisées pour manipuler les chaînes. Elle divise une chaîne en une liste de sous-chaînes selon un séparateur spécifié.

texte = "pomme,banane,orange"
print(texte.split(","))  # ['pomme', 'banane', 'orange']

Division par les espaces

Lorsqu'elle est appelée sans argument, split() divise automatiquement la chaîne selon tous les caractères d'espacement :

"Bonjour    tout le monde".split()  # ['Bonjour', 'tout', 'le', 'monde']

Division par un caractère spécifique

Vous pouvez spécifier n'importe quel caractère comme séparateur :

"un-deux-trois".split("-")  # ['un', 'deux', 'trois']

Le paramètre maxsplit

Le paramètre maxsplit limite le nombre de divisions :

"1,2,3,4".split(",", 2)  # ['1', '2', '3,4']

La méthode join()

Fusion d'une liste de chaînes

La méthode join() effectue l'opération inverse de split() : elle fusionne les éléments d'une liste en une seule chaîne :

mots = ['Python', 'est', 'génial']
resultat = " ".join(mots)
print(resultat)  # Python est génial

Travail avec différents séparateurs

Join() permet d'utiliser n'importe quelle chaîne comme séparateur :

print("-".join(["2025", "03", "27"]))  # 2025-03-27
print("::".join(["serveur", "base", "table"]))  # serveur::base::table

Utilisation avec la fonction map()

Pour fusionner des nombres, il faut d'abord les convertir en chaînes :

nombres = [1, 2, 3]
resultat = " ".join(map(str, nombres))  # "1 2 3"

Méthodes de recherche et de remplacement

La méthode find()

Recherche d'une sous-chaîne

La méthode find() recherche une sous-chaîne dans une chaîne et retourne l'index de la première occurrence, ou -1 si elle n'est pas trouvée :

texte = "Bienvenue en Python"
print(texte.find("Python"))   # 13
print(texte.find("Java"))     # -1

Recherche avec index de départ et de fin

Vous pouvez spécifier les positions de début et de fin pour la recherche :

texte = "Python est génial, Python est puissant"
print(texte.find("Python", 10))  # 22

La méthode rfind()

rfind() fonctionne comme find() mais recherche la dernière occurrence :

texte = "Python est génial, Python est puissant"
print(texte.rfind("Python"))  # 22

Les méthodes index() et rindex()

Ces méthodes sont similaires à find() et rfind(), mais lèvent une exception ValueError si la sous-chaîne n'est pas trouvée :

texte = "Bonjour le monde"
print(texte.index("monde"))   # 8
# print(texte.index("Java"))  # Lève ValueError

La méthode replace()

Remplacement simple

La méthode replace() remplace toutes les occurrences d'une sous-chaîne par une autre :

texte = "J'aime Python et Python est génial"
print(texte.replace("Python", "JavaScript"))
# "J'aime JavaScript et JavaScript est génial"

Remplacement avec limite

Le paramètre count permet de limiter le nombre de remplacements :

texte = "un, deux, un, deux, un"
print(texte.replace("un", "trois", 2))
# "trois, deux, trois, deux, un"

Méthodes de suppression des espaces

La méthode strip()

strip() supprime les espaces (et autres caractères d'espacement) au début et à la fin d'une chaîne :

texte = "   Bonjour le monde   "
print(texte.strip())  # "Bonjour le monde"

Les méthodes lstrip() et rstrip()

lstrip() supprime les espaces à gauche, rstrip() à droite :

texte = "   texte avec espaces   "
print(texte.lstrip())  # "texte avec espaces   "
print(texte.rstrip())  # "   texte avec espaces"

Suppression de caractères spécifiques

Vous pouvez passer une chaîne de caractères à supprimer en argument :

texte = "...Bonjour..."
print(texte.strip("."))  # "Bonjour"

Méthodes de changement de casse

upper() et lower()

upper() convertit en majuscules, lower() en minuscules :

texte = "Bonjour le Monde"
print(texte.upper())  # "BONJOUR LE MONDE"
print(texte.lower())  # "bonjour le monde"

title() et capitalize()

title() met en majuscule la première lettre de chaque mot, capitalize() seulement la première lettre de la chaîne :

texte = "bonjour le monde"
print(texte.title())      # "Bonjour Le Monde"
print(texte.capitalize()) # "Bonjour le monde"

swapcase() et casefold()

swapcase() inverse la casse, casefold() est une version plus agressive de lower() pour la comparaison insensible à la casse :

texte = "Bonjour Le Monde"
print(texte.swapcase())  # "bONJOUR lE mONDE"
print("Straße".casefold())  # "strasse"

Méthodes de vérification

startswith() et endswith()

Ces méthodes vérifient si une chaîne commence ou se termine par une sous-chaîne donnée :

fichier = "document.pdf"
print(fichier.startswith("doc"))  # True
print(fichier.endswith(".pdf"))   # True

Méthodes de classification des caractères

Python propose plusieurs méthodes pour vérifier le type de caractères d'une chaîne :

print("123".isdigit())    # True
print("abc".isalpha())    # True
print("abc123".isalnum()) # True
print("   ".isspace())    # True
print("Hello".istitle())  # True
print("ABC".isupper())    # True
print("abc".islower())    # True

Méthodes de formatage et de remplissage

La méthode zfill()

zfill() remplit une chaîne numérique avec des zéros à gauche pour atteindre une longueur spécifiée :

nombre = "42"
print(nombre.zfill(5))  # "00042"

Les méthodes ljust(), rjust() et center()

Ces méthodes alignent le texte à gauche, à droite ou au centre en ajoutant des caractères de remplissage :

texte = "Python"
print(texte.ljust(10, "-"))  # "Python----"
print(texte.rjust(10, "-"))  # "----Python"
print(texte.center(10, "-")) # "--Python--"

Conclusion

Les méthodes de chaînes en Python offrent une grande flexibilité pour le traitement du texte. Maîtriser ces outils est essentiel pour tout développeur Python, que ce soit pour l'analyse de données, le développement web ou l'automatisation de tâches. N'hésitez pas à expérimenter avec ces méthodes dans vos projets pour les maîtriser pleinement.

Blogs

Book Recommendations