Méthode split() de chaîne Python
La fonction split() de Python est utilisée pour diviser une chaîne en une liste de chaînes en fonction d'un délimiteur.
Syntaxe de la fonction split() de la chaîne Python
str.split(sep=None, maxsplit=-1)
L'argument sep est utilisé comme délimiteur. Si la chaîne contient des délimiteurs consécutifs, alors une chaîne vide est retournée. L'argument de délimiteur peut également être composé de plusieurs caractères.
Si le délimiteur n'est pas fourni ou Aucun, alors les espaces sont considérés comme le délimiteur. Dans ce cas, aucune chaîne vide ne sera retournée s'il y a des espaces vides en début ou en fin. De plus, plusieurs espaces seront considérés comme un seul délimiteur.
Si maxsplit est fourni, au maximum maxsplit divisions sont effectuées (donc, la liste aura au maximum maxsplit+1 éléments). Si maxsplit n'est pas spécifié ou -1, alors il n'y a pas de limite au nombre de divisions et toutes les divisions possibles sont renvoyées dans la liste.
Exemple de la méthode split() de Python
Regardons un exemple simple où une chaîne sera divisée en une liste en fonction du délimiteur spécifié.
s = 'Python is Nice'
simple string split example
str_list = s.split(sep=' ')
print(str_list)
Sortie :
['Python', 'is', 'Nice']
Exemple de split() de chaîne avec maxsplit
s = 'Python is Nice'
str_list = s.split(sep=' ', maxsplit=1)
print(str_list)
['Python', 'est agréable']
Remarquez que la liste retournée ne contient que 2 éléments, la chaîne a été divisée seulement une fois.
sep n'est pas fourni ou est None
s = ' Java Python iOS Android '
str_list = s.split()
print(str_list)
Sortie : ['Java', 'Python', 'iOS', 'Android']
Les espaces blancs en début et en fin sont ignorés dans la liste retournée. De plus, les espaces blancs consécutifs sont également considérés comme un seul délimiteur.
Exemple de chaîne multilignes divisée
multiline_str = 'Hi There\nHow are you?\nI am fine'
multiline_str_split_list = multiline_str.split(sep='\n')
for s in multiline_str_split_list:
print(s)
Sortie :
Hi There
How are you?
I am fine
Exemple de séparateur multi-caractères
s = 'Hi||Hello||Adios'
str_list = s.split('||')
print(str_list)
['Salut', 'Bonjour', 'Adieu']
exemple de fonction str.split()
Nous pouvons utiliser la fonction split() directement à partir de la classe str aussi.
print(str.split('ABACAD', sep='A'))
print(str.split('ABACAD', sep='A', maxsplit=2))
Sortie :
['', 'B', 'C', 'D']
['', 'B', 'CAD']
Remarquez qu'une chaîne vide est renvoyée lorsque le premier caractère correspond au séparateur.
Exemple de séparation de chaîne CSV avec saisie de l'utilisateur
Enfin, examinons un exemple concret où l'utilisateur saisira les données CSV et nous les diviserons en une liste de chaînes.
input_csv = input('Please enter CSV Data\n')
input_csv_split_list = input_csv.split(sep=',')
print('Input Data Length =', len(input_csv_split_list))
print('List of inputs =', input_csv_split_list)
Sortie :
Please enter CSV Data
Java,Android,Python,iOS,jQuery
Input Data Length = 5
List of inputs = ['Java', 'Android', 'Python', 'iOS', 'jQuery']
C'est tout pour les exemples de la fonction split() des chaînes en python. C'est une fonction très utile pour diviser une chaîne en liste basée sur un certain délimiteur.
Méthode rsplit() de la chaîne Python
La fonction rsplit() de Python est très similaire à la fonction split(). La seule différence est que les séparations se font en commençant par la fin de la chaîne et en allant vers l'avant.
Examinons quelques exemples de la fonction rsplit().
rsplit() example
s = 'Python is Awesome'
str_list = s.rsplit(sep=' ')
print(str_list)
str_list = s.rsplit(sep=' ', maxsplit=1)
print(str_list)
s = ' Java Python iOS Android '
str_list = s.rsplit()
print(str_list)
multiline_str = 'Hi There\nHow are you?\nI am fine'
multiline_str_split_list = multiline_str.rsplit(sep='\n')
for s in multiline_str_split_list:
print(s)
s = 'Hi||Hello||Adios'
str_list = s.rsplit('||')
print(str_list)
using split() with str class
print(str.rsplit('ABACAD', sep='A'))
print(str.rsplit('ABACAD', sep='A', maxsplit=2))
csv and user input example
input_csv = input('Please enter CSV Data\n')
input_csv_split_list = input_csv.rsplit(sep=',')
print('Input Data Length =', len(input_csv_split_list))
print('List of inputs =', input_csv_split_list)
Sortie :
['Python', 'is', 'Awesome']
['Python is', 'Awesome']
['Java', 'Python', 'iOS', 'Android']
Hi There
How are you?
I am fine
['Hi', 'Hello', 'Adios']
['', 'B', 'C', 'D']
['AB', 'C', 'D']
Please enter CSV Data
x,y,z
Input Data Length = 3
List of inputs = ['x', 'y', 'z']
Notez que la différence est visible lorsque l'argument maxsplit est fourni. Sinon, la sortie des fonctions split() et rsplit() est la même.

