- À propos de split() en Python
- Syntaxe de la méthode split()
- Découper une chaîne selon les espaces
- Découper une chaîne avec un séparateur personnalisé
- Utiliser le paramètre maxsplit
- Comprendre la valeur retournée par split()
- Différence entre split() et split(" ")
- Découper une chaîne contenant des retours à la ligne
- Parcourir les éléments obtenus avec split()
- Récupérer certaines parties d'une chaîne
- Utiliser split() avec join()
- Exemples pratiques avec split()
- À retenir !
La méthode split() permet de découper une chaîne de caractères en plusieurs parties à partir d'un séparateur. Elle retourne les différentes parties obtenues sous la forme d'une liste Python.
Cette méthode est particulièrement utile pour séparer les mots d'une phrase, traiter des données séparées par des virgules ou des points-virgules, récupérer différentes informations contenues dans une chaîne ou préparer des données textuelles pour un traitement ultérieur.
1. À propos de split() en Python
Les chaînes de caractères Python disposent de la méthode split(). Celle-ci recherche un séparateur dans une chaîne puis découpe cette chaîne à chaque occurrence du séparateur.
Lorsqu'aucun séparateur n'est précisé, split() utilise les caractères d'espacement comme séparateurs. Cela permet notamment de transformer facilement une phrase en une liste de mots.
Dans l'exemple suivant, nous découpons une phrase en plusieurs mots avec split().
1 2 3 | texte = "Python est facile à apprendre" mots = texte.split() print(mots) |
Sortie :
1 | ['Python', 'est', 'facile', 'à', 'apprendre'] |
La méthode split() a séparé les différents mots et retourné une liste contenant cinq chaînes de caractères.
2. Syntaxe de la méthode split()
La méthode split() accepte deux paramètres facultatifs : sep, qui représente le séparateur, et maxsplit, qui permet de limiter le nombre de découpages.
La syntaxe générale de split() est la suivante :
1 | chaine.split(sep, maxsplit) |
Sortie :
1 | Une liste contenant les différentes parties de la chaîne |
Les paramètres ont les rôles suivants :
- sep : séparateur utilisé pour découper la chaîne ;
- maxsplit : nombre maximal de découpages à effectuer.
Les deux paramètres étant facultatifs, la méthode peut être appelée simplement sans aucun argument.
1 2 3 | texte = "Cours Python débutant" resultat = texte.split() print(resultat) |
Sortie :
1 | ['Cours', 'Python', 'débutant'] |
En l'absence d'argument, Python découpe ici la chaîne en fonction de ses caractères d'espacement.
3. Découper une chaîne selon les espaces
L'utilisation la plus simple de split() consiste à découper une phrase en mots. Lorsque la méthode est appelée sans argument, les espaces et autres caractères d'espacement servent de séparateurs.
Dans l'exemple suivant, chaque mot de la phrase devient un élément de la liste retournée.
1 2 3 | phrase = "Apprendre Python facilement" mots = phrase.split() print(mots) |
Sortie :
1 | ['Apprendre', 'Python', 'facilement'] |
Les espaces ne figurent pas dans la liste finale : ils servent uniquement à déterminer les endroits où la chaîne doit être découpée.
Plusieurs espaces consécutifs
Lorsque split() est appelée sans argument, plusieurs caractères d'espacement consécutifs sont considérés comme une seule zone de séparation. Cela évite généralement la création d'éléments vides.
1 2 3 | texte = "Python est facile" resultat = texte.split() print(resultat) |
Sortie :
1 | ['Python', 'est', 'facile'] |
Malgré la présence de plusieurs espaces entre les mots, la liste obtenue contient uniquement les trois mots.
4. Découper une chaîne avec un séparateur personnalisé
Il est possible de fournir un séparateur personnalisé à split(). Le découpage est alors effectué à chaque occurrence exacte de ce séparateur.
Utiliser la virgule comme séparateur
Dans l'exemple suivant, les différents langages sont séparés par des virgules. Nous utilisons donc "," comme argument de split().
1 2 3 | langages = "Python,Java,C++,PHP" resultat = langages.split(",") print(resultat) |
Sortie :
1 | ['Python', 'Java', 'C++', 'PHP'] |
Chaque virgule marque l'endroit où la chaîne doit être découpée.
Utiliser le point-virgule comme séparateur
Le séparateur peut être n'importe quelle chaîne non vide. Dans cet exemple, nous utilisons le caractère ;.
1 2 3 | donnees = "Ali;25;Oujda;Python" resultat = donnees.split(";") print(resultat) |
Sortie :
1 | ['Ali', '25', 'Oujda', 'Python'] |
Les différentes informations sont séparées et placées dans une liste.
Utiliser plusieurs caractères comme séparateur
Le séparateur n'est pas obligatoirement constitué d'un seul caractère. Il peut également être une chaîne composée de plusieurs caractères.
1 2 3 | texte = "Python--Java--C++--PHP" resultat = texte.split("--") print(resultat) |
Sortie :
1 | ['Python', 'Java', 'C++', 'PHP'] |
Python utilise ici la chaîne "--" entière comme séparateur.
5. Utiliser le paramètre maxsplit
Le paramètre maxsplit permet de définir le nombre maximal de découpages à effectuer. Une fois cette limite atteinte, le reste de la chaîne est conservé dans le dernier élément de la liste.
Dans l'exemple suivant, nous demandons à Python d'effectuer un seul découpage.
1 2 3 | texte = "Python Java C++ PHP" resultat = texte.split(" ", 1) print(resultat) |
Sortie :
1 | ['Python', 'Java C++ PHP'] |
Un seul découpage est effectué. La liste contient donc deux éléments : la partie située avant le premier séparateur et tout le reste de la chaîne.
Effectuer deux découpages
En donnant la valeur 2 à maxsplit, Python effectue au maximum deux découpages.
1 2 3 | texte = "Python Java C++ PHP" resultat = texte.split(" ", 2) print(resultat) |
Sortie :
1 | ['Python', 'Java', 'C++ PHP'] |
Deux découpages produisent ici trois éléments. D'une manière générale, lorsque suffisamment de séparateurs existent, un maxsplit égal à n produit au maximum n + 1 éléments.
Utiliser maxsplit sans préciser explicitement le séparateur
Si l'on souhaite limiter le nombre de découpages tout en conservant le comportement par défaut concernant les caractères d'espacement, on peut utiliser le paramètre nommé maxsplit.
1 2 3 | texte = "Python Java C++ PHP" resultat = texte.split(maxsplit=2) print(resultat) |
Sortie :
1 | ['Python', 'Java', 'C++ PHP'] |
Les deux premiers groupes de caractères d'espacement servent au découpage, puis le reste de la chaîne est conservé dans le dernier élément.
6. Comprendre la valeur retournée par split()
La méthode split() ne retourne pas une nouvelle chaîne mais une liste. Chaque partie issue du découpage devient un élément de cette liste.
L'exemple suivant permet de vérifier le type de la valeur retournée.
1 2 3 4 | texte = "Python Java C++" resultat = texte.split() print(resultat) print(type(resultat)) |
Sortie :
1 2 | ['Python', 'Java', 'C++'] <class 'list'> |
Le résultat est bien un objet de type list.
Accéder aux éléments de la liste
Puisque split() retourne une liste, il est possible d'utiliser les indices pour accéder individuellement aux différentes parties obtenues.
1 2 3 4 5 | texte = "Python Java C++" langages = texte.split() print(langages[0]) print(langages[1]) print(langages[2]) |
Sortie :
1 2 3 | Python Java C++ |
L'indice 0 permet d'accéder au premier élément, l'indice 1 au deuxième et ainsi de suite.
Connaître le nombre d'éléments obtenus
La fonction len() permet de connaître le nombre d'éléments contenus dans la liste produite par split().
1 2 3 | phrase = "Python est un langage très populaire" mots = phrase.split() print(len(mots)) |
Sortie :
1 | 6 |
La phrase a été découpée en six éléments.
7. Différence entre split() et split(" ")
Les expressions split() et split(" ") peuvent sembler équivalentes, mais leur comportement diffère lorsqu'une chaîne contient plusieurs espaces consécutifs ou d'autres caractères d'espacement.
Avec split() sans argument, les suites de caractères d'espacement sont regroupées et ne produisent pas d'éléments vides.
1 2 3 | texte = "Python Java C++" resultat = texte.split() print(resultat) |
Sortie :
1 | ['Python', 'Java', 'C++'] |
Les espaces consécutifs sont traités comme des séparateurs d'espacement successifs sans produire de chaînes vides.
Avec split(" "), en revanche, Python utilise exactement un caractère espace comme séparateur. Des séparateurs consécutifs produisent donc des chaînes vides entre eux.
1 2 3 | texte = "Python Java C++" resultat = texte.split(" ") print(resultat) |
Sortie :
1 | ['Python', '', '', 'Java', '', '', 'C++'] |
Cette différence est importante. Pour découper simplement une phrase en mots lorsque le nombre d'espaces peut varier, split() sans argument est généralement préférable.
8. Découper une chaîne contenant des retours à la ligne
Sans argument, split() reconnaît plusieurs types de caractères d'espacement, notamment les espaces, les tabulations et les retours à la ligne.
Dans l'exemple suivant, une chaîne contenant des caractères \n est découpée en mots.
1 2 3 | texte = "Python\nJava\nC++" resultat = texte.split() print(resultat) |
Sortie :
1 | ['Python', 'Java', 'C++'] |
Les caractères de retour à la ligne servent ici de séparateurs.
Découper explicitement selon le retour à la ligne
Si l'objectif est de découper uniquement à chaque caractère \n, celui-ci peut être fourni explicitement à split().
1 2 3 | texte = "Ligne 1\nLigne 2\nLigne 3" lignes = texte.split("\n") print(lignes) |
Sortie :
1 | ['Ligne 1', 'Ligne 2', 'Ligne 3'] |
Chaque ligne devient un élément distinct de la liste. Pour traiter spécifiquement les séparateurs de lignes, Python fournit également la méthode splitlines().
9. Parcourir les éléments obtenus avec split()
La liste retournée par split() peut être parcourue avec une boucle for. Cette technique permet d'appliquer un traitement à chaque partie de la chaîne.
Dans l'exemple suivant, nous découpons une chaîne contenant plusieurs langages puis nous affichons chaque élément séparément.
1 2 3 4 | texte = "Python,Java,C++,PHP" langages = texte.split(",") for langage in langages: print(langage) |
Sortie :
1 2 3 4 | Python Java C++ PHP |
Chaque élément de la liste est affecté successivement à la variable langage.
Afficher les éléments avec leur numéro
La fonction enumerate() peut être combinée avec split() pour associer un numéro à chaque élément obtenu.
1 2 3 4 | texte = "Python Java C++" langages = texte.split() for numero, langage in enumerate(langages, start=1): print(numero, langage) |
Sortie :
1 2 3 | 1 Python 2 Java 3 C++ |
La fonction enumerate() génère ici les numéros à partir de 1 pendant le parcours de la liste.
10. Récupérer certaines parties d'une chaîne
Comme split() produit une liste, il est possible de récupérer directement une information particulière en utilisant son indice.
Récupérer le nom de domaine d'une adresse électronique
Une adresse électronique simple peut être découpée autour du caractère @. La partie située après ce caractère correspond alors au nom de domaine.
1 2 3 | email = "younes@example.com" parties = email.split("@") print(parties[1]) |
Sortie :
1 | example.com |
La chaîne est découpée en deux parties et l'indice 1 permet de récupérer la deuxième.
Affecter directement les parties à plusieurs variables
Lorsque l'on connaît exactement le nombre d'éléments produits par split(), Python permet de les affecter directement à plusieurs variables grâce au déballage.
1 2 3 4 | email = "younes@example.com" utilisateur, domaine = email.split("@") print("Utilisateur :", utilisateur) print("Domaine :", domaine) |
Sortie :
1 2 | Utilisateur : younes Domaine : example.com |
Les deux éléments de la liste sont directement affectés aux variables utilisateur et domaine.
Récupérer une clé et une valeur
Le paramètre maxsplit est particulièrement utile lorsqu'on souhaite séparer une chaîne en seulement deux parties, par exemple une clé et sa valeur.
1 2 3 4 | donnee = "langage=Python=3" cle, valeur = donnee.split("=", 1) print("Clé :", cle) print("Valeur :", valeur) |
Sortie :
1 2 | Clé : langage Valeur : Python=3 |
Grâce à maxsplit=1, seul le premier signe = sert au découpage. Le deuxième reste dans la valeur.
11. Utiliser split() avec join()
Les méthodes split() et join() sont souvent complémentaires. split() transforme une chaîne en liste, tandis que join() permet d'assembler une collection de chaînes en utilisant un séparateur.
Dans l'exemple suivant, nous découpons une phrase puis nous réunissons les mots avec des tirets.
1 2 3 4 | texte = "Apprendre Python facilement" mots = texte.split() resultat = "-".join(mots) print(resultat) |
Sortie :
1 | Apprendre-Python-facilement |
La méthode split() crée d'abord la liste des mots. La méthode join() les rassemble ensuite en plaçant un tiret entre chaque élément.
Normaliser les espaces d'une chaîne
La combinaison de split() et join() permet également de remplacer plusieurs caractères d'espacement successifs par un seul espace.
1 2 3 | texte = "Python est facile" resultat = " ".join(texte.split()) print(resultat) |
Sortie :
1 | Python est facile |
split() extrait les mots en ignorant les suites d'espaces, puis join() les rassemble avec exactement un espace entre eux.
12. Exemples pratiques avec split()
Découper une date
Une date représentée sous forme de chaîne peut être découpée selon son séparateur afin de récupérer séparément le jour, le mois et l'année.
1 2 3 4 5 | date = "18/10/2026" jour, mois, annee = date.split("/") print("Jour :", jour) print("Mois :", mois) print("Année :", annee) |
Sortie :
1 2 3 | Jour : 18 Mois : 10 Année : 2026 |
Les trois parties sont directement affectées à trois variables grâce au déballage de séquence.
Compter les mots d'une phrase
En combinant split() avec len(), on peut effectuer un comptage simple des éléments séparés par des caractères d'espacement.
1 2 3 4 | phrase = "Python est un langage de programmation populaire" mots = phrase.split() nombre = len(mots) print("Nombre de mots :", nombre) |
Sortie :
1 | Nombre de mots : 7 |
La méthode découpe la phrase en sept éléments, puis len() retourne la taille de la liste.
Traiter des données séparées par des points-virgules
De nombreuses données textuelles utilisent un caractère particulier comme séparateur. Dans l'exemple suivant, split() permet de récupérer séparément un nom, un âge et une ville.
1 2 3 4 5 | donnee = "Ali;25;Oujda" nom, age, ville = donnee.split(";") print("Nom :", nom) print("Âge :", age) print("Ville :", ville) |
Sortie :
1 2 3 | Nom : Ali Âge : 25 Ville : Oujda |
Chaque information est récupérée dans une variable distincte.
Convertir une chaîne de nombres en liste d'entiers
Les éléments retournés par split() sont toujours des chaînes. Pour obtenir des nombres entiers, il faut donc effectuer une conversion avec int().
1 2 3 4 | texte = "10 20 30 40" nombres = [int(nombre) for nombre in texte.split()] print(nombres) print(sum(nombres)) |
Sortie :
1 2 | [10, 20, 30, 40] 100 |
La méthode split() produit d'abord les chaînes "10", "20", "30" et "40". La compréhension de liste applique ensuite int() à chacune d'elles.
Extraire le nom d'un fichier d'un chemin simple
Dans un chemin utilisant le caractère / comme séparateur, split() peut être utilisée pour récupérer le dernier élément. Pour des traitements généraux et portables sur les chemins de fichiers, le module pathlib reste cependant préférable.
1 2 3 4 | chemin = "/home/python/cours/exemple.py" parties = chemin.split("/") fichier = parties[-1] print(fichier) |
Sortie :
1 | exemple.py |
L'indice -1 permet d'accéder au dernier élément de la liste, qui correspond ici au nom du fichier.
13. À retenir !
- La méthode split() permet de découper une chaîne de caractères en plusieurs parties.
- Elle retourne une liste contenant les différentes parties obtenues.
- Sans argument, split() utilise les caractères d'espacement comme séparateurs.
- Un séparateur personnalisé peut être fourni sous la forme chaine.split(separateur).
- Le séparateur peut être constitué d'un ou de plusieurs caractères.
- Le paramètre maxsplit permet de limiter le nombre de découpages.
- Avec suffisamment de séparateurs, maxsplit=n produit au maximum n + 1 éléments.
- split() sans argument et split(" ") n'ont pas exactement le même comportement.
- La liste obtenue peut être parcourue avec une boucle for ou manipulée avec les opérations habituelles sur les listes.
- Le déballage permet d'affecter directement les différentes parties à plusieurs variables lorsque leur nombre est connu.
- Les méthodes split() et join() sont complémentaires pour découper puis reconstruire des chaînes.
- split() est particulièrement utile pour traiter des phrases, des données séparées par des délimiteurs et de nombreuses informations textuelles structurées.
Auteur : Younes Derfoufi
Lieu de travail : CRMEF OUJDA
Site Web : www.tresfacile.net
Chaine YouTube : https://www.youtube.com/user/InformatiquesFacile
Me contacter : https://www.tresfacile.net/me-contacter/



