Dans ce tutoriel, vous apprendrez à utiliser la méthode split() de Python pour diviser une chaîne de caractères en une liste de chaînes.

Lorsque vous travaillez avec des chaînes Python, vous pouvez utiliser plusieurs méthodes intégrées pour obtenir des copies modifiées des chaînes, telles que la conversion en majuscules, le tri d’une chaîne, etc. L’une de ces méthodes est .split(), qui divise une chaîne Python en une liste de chaînes, et nous en apprendrons davantage à l’aide d’exemples de codage.

À la fin de ce tutoriel, vous aurez appris ce qui suit :

  • comment fonctionne la méthode .split( )
  • comment personnaliser la division en utilisant les paramètres sep et maxsplit

Commençons !

Syntaxe de la méthode split() en Python

Voici la syntaxe générale pour utiliser la méthode split() de Python sur n’importe quelle chaîne de caractères valide :

string.split(sep, maxsplit)

# Paramètres :
sep, maxsplit

# Retourne :
Une liste de chaînes de caractères

Ici, chaîne peut être n’importe quelle chaîne Python valide.

Les paramètres sep et maxsplit sont optionnels.

  • sep indique le séparateur sur lequel vous souhaitez diviser la chaîne. Il doit être spécifié sous la forme d’une chaîne.
  • maxsplit est un entier qui indique combien de fois vous souhaitez diviser la chaîne.

Leurs valeurs par défaut sont utilisées lorsque vous ne fournissez pas de paramètres optionnels.

  • Si vous ne fournissez pas explicitement la valeur sep, l’espace blanc est utilisé comme séparateur par défaut.
  • Si vous ne précisez pas la valeur de maxsplit, elle est fixée par défaut à -1, ce qui signifie que la chaîne sera scindée sur toutes les occurrences du séparateur.

Formulez la syntaxe en langage clair :

La méthode split() divise une chaîne de caractères maxsplit un certain nombre de fois sur l’occurrence du séparateur spécifié par le paramètre sep.

Maintenant que nous avons appris la syntaxe de la méthode split() de Python, codons quelques exemples.

Diviser une chaîne Python en une liste de chaînes

Si Python 3 est installé sur votre machine, vous pouvez coder avec ce tutoriel en exécutant les extraits de code suivants dans une REPL Python.

Pour lancer la REPL, exécutez l’une des commandes suivantes à partir du terminal :

$ python
$ python -i

You can also try out these examples on Domsignal Python Online Compiler.

Dans cet exemple, py_str est une chaîne Python. Appelons la méthode .split() sur py_str sans aucun paramètre et observons le résultat.

py_str = "Apprenez à utiliser split() en Python"
py_str.split()

# Sortie
['Apprendre', 'comment', 'utiliser', 'split()', 'en', 'Python']

Comme nous l’avons vu ci-dessus, la chaîne est divisée sur toutes les occurrences d’espaces blancs.

Diviser une chaîne de caractères Python en fonction de la présence de séparateurs

#1. Comme premier exemple, divisons la chaîne py_str avec un double soulignement (__) comme séparateur.

py_str = "All__the__best"
py_str.split(sep='__')

# Sortie
['Tous', 'le', 'le meilleur']

#2. Prenons un autre exemple. Ici, py_str contient trois phrases, chacune terminée par un point (.).

py_str = "J'aime coder. Python, c'est cool. J'apprends Python en 2022"
py_str.split(sep='.')

# Sortie
['I love coding', ' Python is cool', " I'm learning Python in 2022"]

▶️ Lorsque nous appelons la méthode .split() sur cette chaîne, avec '.' comme séparateur, la liste résultante contient trois phrases, comme le montre la cellule de code ci-dessus.

#3. Posons quelques questions :

  • Que se passe-t-il lorsque le séparateur n’apparaît jamais dans la chaîne ?
  • Comment la division se produira-t-elle dans ce cas ?

Voici un exemple :

Nous essayons de diviser py_str sur l’occurrence de l’astérisque (*) – qui ne se produit pas.

py_str = "Cette ligne ne contient pas d'astérisque"
py_str.split(sep='*')

# Sortie
[Cette ligne ne contient pas d'astérisque.]

Comme aucun fractionnement ne peut être effectué dans ce cas, la liste résultante contient la chaîne entière.

Dans la section suivante, nous verrons comment utiliser la méthode split() sur le contenu d’un fichier texte.

Diviser le contenu d’un fichier Python

Lorsque vous travaillez avec des fichiers texte en Python, vous pouvez être amené à diviser le contenu du fichier à l’aide d’un séparateur pour faciliter le traitement.

Voici un exemple de fichier texte :

Split the Contents of a Python File

L’extrait de code ci-dessous montre comment utiliser le fractionnement sur le contenu du fichier texte d’exemple.

avec open('sample.txt') as f :
  content = f.read()
  str_list= content.split(sep='...')
  pour string dans str_list :
    print(string,end='')

Le code ci-dessus effectue les opérations suivantes :

  • Il utilise le gestionnaire de contexte with pour ouvrir et utiliser le fichier texte “sample.txt”.
  • Il lit le contenu du fichier à l’aide de la méthode .read() sur l’objet fichier f.
  • Divise le contenu à chaque occurrence du séparateur ellipse (…) en une liste str_list.
  • Boucle sur str_list pour accéder à chaque chaîne et l’imprime.

Voici la sortie.

# Sortie
Voici un exemple de fichier texte
Il contient des informations sur
Commencer à programmer en Python
D'après l'enquête StackOverflow de 2022 auprès des développeurs, Python est l'un des langages de programmation les plus appréciés
Python est l'un des langages de programmation les plus appréciés
Alors, qu'attendez-vous ? Commencez à apprendre !

En guise d’exercice, vous pouvez essayer de diviser le contenu d’un fichier texte à l’aide du séparateur de votre choix.

Diviser une chaîne Python en morceaux

Si vous divisez une chaîne une fois, vous obtiendrez deux morceaux ; si vous la divisez deux fois, vous en obtiendrez trois.

📋 En général, lorsque vous divisez une chaîne K fois, vous obtiendrez K 1 morceaux.

#1. Nous avons fixé maxsplit à 1. Nous n’avons pas spécifié de séparateur, donc la division se fera sur les espaces blancs par défaut.

py_str = "Chunk#1 I'm a larger chunk, Chunk#2"
py_str.split(maxsplit=1)

# Sortie
['Chunk#1', "I'm a larger chunk, Chunk#2"]

Même si le deuxième morceau de la liste contient des espaces blancs, la division ne se produit pas car elle est maintenant contrôlée par la valeur maxsplit de un.

#2. Augmentons la valeur de maxsplit à 2 et observons comment la division se produit pour l’exemple suivant.

py_str = "Chunk#1 Chunk#2 I'm one large Chunk#3, even though I contain whitespaces"
py_str.split(maxsplit=2)

# Sortie
['Chunk#1',
 'Chunk#2',
 "Je suis un grand Chunk#3, même si j'ai des espaces blancs"]]

Comme dans l’exemple précédent, la valeur maxsplit détermine le nombre de divisions effectuées. Nous obtenons trois morceaux, divisés après la première et la deuxième occurrence de l’espace blanc.

#3. Que se passe-t-il si vous définissez maxsplit à une valeur supérieure au nombre d’occurrences du séparateur ?

Dans la cellule de code suivante, nous fixons maxsplit à 8 lorsque la chaîne ne contient que quatre virgules.

py_str = "Il, n'y, a, que, 4, virgules"
py_str.split(maxsplit=8)

# Sortie
['There,', 'are,', 'only,', '4,', 'commas']

Ici, la méthode split divise py_str sur les quatre occurrences d’une virgule. Même si vous essayez de définir maxsplit à une valeur inférieure à -1, disons -7, la division sera effectuée sur toutes les occurrences du séparateur.

Ensuite, mettons en commun tout ce que nous avons appris et utilisons les deux paramètres sep maxsplit.

Diviser une chaîne Python en morceaux sur un séparateur

#1. Supposons que nous ayons besoin de diviser la chaîne py_str en trois morceaux sur l’occurrence de la virgule (,). Pour ce faire, nous pouvons fixer la valeur sep à ‘,’ et la valeur maxsplit à 2 dans l’appel de la méthode.

py_str = "Chunk#1, Chunk#2, I'm one large Chunk#3, even though I contain a ,"
py_str.split(sep = ',',maxsplit=2)

# Sortie
['Chunk#1', ' Chunk#2', " I'm one large Chunk#3, even though I contain a ,"]

Comme on peut le voir dans la sortie, la division se produit deux fois sur les deux premières occurrences du séparateur.

#2. Le séparateur sep ne doit pas toujours être un caractère spécial. Il peut s’agir d’une séquence de caractères spéciaux, comme le double soulignement que nous avons utilisé plus tôt, ou il peut même s’agir d’une sous-chaîne.

Définissons la chaîne “learn” comme argument sep et voyons comment la division se produit pour différentes valeurs de maxsplit. Ici, nous avons fixé maxsplit à 2.

py_str = "Vous devez apprendre les structures de données, apprendre les algorithmes, et apprendre encore !"
py_str.split(sep = 'learn',maxsplit=2)

# Sortie
['Vous devez ', ' structures de données, ', ' algorithmes, et en apprendre plus !]

#3. Si vous souhaitez diviser py_str sur toutes les occurrences de la chaîne ‘learn’, nous pouvons appeler cette méthode .split() en définissant sep = 'learn'-sans le paramètre maxsplit. Cela équivaut à définir explicitement la valeur maxsplit à -1, comme le montre la cellule de code ci-dessous.

py_str = "Vous avez besoin d'apprendre les structures de données, d'apprendre les algorithmes, et d'apprendre encore !"
py_str.split(sep = 'learn',maxsplit=-1)

# Sortie
['You need to ', ' data structures, ', ' algorithms, and ', ' more!']

Nous constatons que la division se produit dans toutes les occurrences de ‘learn’.

Conclusion

J’espère que vous avez maintenant compris comment utiliser la méthode .split() avec les chaînes Python.

Voici un résumé de ce tutoriel :

  • La méthode intégrée de Python .split() divise une chaîne en une liste de chaînes.
  • Utilisez string.split() pour diviser la chaîne sur toutes les occurrences du séparateur par défaut, l’espace blanc.
  • Utilisez string.split(sep,maxsplit) pour diviser la chaîne un nombre maximum de fois sur l’occurrence du séparateur sep. La liste résultante a un nombre maximum de 1 éléments.