Comment utiliser la méthode split ?

La méthode split est une méthode des chaînes de caractères. Elle permet de découper une chaîne en une liste de chaînes de caractères en fonction du séparateur défini en argument.

Séparateur par défaut

Si on ne passe aucun argument à la méthode split, la séparation sera faite sur tous les types d'espaces blancs :

  • retours à la ligne

  • espace

  • tabulation

Exemples

Si la chaîne est vide la méthode retourne une liste vide :

print("     ".split())  # []
Un instant

De la même façon, avec un retour à la ligne ou une tabulation, aucun élément n'est retourné :

print("\n\t".split())  # []
Un instant

Dans le cas contraire, elle retournera une liste d'au moins un élément :

print("Patrick".split())  # ['Patrick']
Un instant

print("Patrick passe son TOSA".split())  # ['Patrick', 'passe', 'son', 'TOSA']
Un instant

Avec un séparateur explicite

Il est bien sûr possible de spécifier un séparateur de manière explicite. Dans ce cas précis, la liste retournée contiendra toujours au moins un élément, même si la chaîne de caractères est vide.

Exemples

En utilisant un espace comme séparateur explicite :

print("Bonjour Patrick de docstring".split(" "))  # ['Bonjour', 'Patrick', 'de', 'docstring']
Un instant

La chaîne est découpée sur les espaces.

Donc, si des espaces sont présents en début et fin de chaîne, split va retourner une chaîne vide avant le premier mot et après le dernier mot.

print(" Bonjour Patrick de docstring ".split(" "))  # ['', 'Bonjour', 'Patrick', 'de', 'docstring', '']
Un instant

Avec une chaîne composée de 4 espaces :

print("    ".lower().split(" "))  # ['', '', '', '', '']
Un instant

La méthode retourne 5 éléments vides. En effet, split va couper la chaîne à chaque occurrence.
Pour bien s'en rendre compte :

print("a b".lower().split(" "))  # ['a', 'b']
Un instant

J'ai deux éléments et un espace, la liste retournée contient bien deux chaînes.

Si le séparateur n'est pas dans la chaîne :

print("Bonjour Patrick de docstring".split(","))  # ['Bonjour Patrick de docstring']
Un instant

Ici split retourne une liste contenant un seul élément : la chaîne entière.

Prenons un dernier exemple :

print("Bonjour Patrick, de docstring".split(","))  # ['Bonjour Patrick', ' de docstring']
Un instant

Ici la chaîne sera bien coupée en deux.

Cas spécifiques

Il y a quelques subtilités avec la méthode split. Même si nous avons déjà vu quelques exemples, il est important de revenir sur ces exemples :

# Chaine vide avec ou sans séparateur
print("".split(","))  # Résultat : ['']
print("".split())     # Résultat : []
Un instant

  • Si la chaîne est vide et qu'un séparateur explicite est spécifié, la méthode retournera une liste contenant une chaîne vide (['']).

  • Si la chaîne est vide et qu'aucun séparateur n'est spécifié (appel sans argument), la méthode retournera une liste vide ([]).

Attention

Appeler la méthode split() sans argument et appeler explicitement avec un espace (split(" ")) n'est pas la même chose.

Sans argument, split prend en compte les espaces blancs (tabulations, espaces, sauts de lignes) et les chaînes vides sont ignorées.

Avec un espace explicite (split(" ")), la chaîne sera découpée à chaque espace.

print("     ".split())       # Résultat : []
print("     ".split(" "))    # Résultat : ['', '', '', '', '', '']
print("  a   ".split())       # Résultat : ['a']
print("   a  ".split(" "))    # Résultat : ['', '', '', 'a', '', '']
Un instant

Bravo, tu es prêt à passer à la suite

Rechercher sur le site

Formulaire de contact

Inscris-toi à Docstring

Pour commencer ton apprentissage.

Tu as déjà un compte ? Connecte-toi.