Méthode Python String Split()
La fonction Python string split() est utilisée pour diviser une chaîne en la liste de chaînes en fonction d'un délimiteur.
Syntaxe de la fonction Python string split()
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 renvoyée. L’argument délimiteur peut également comporter 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 renvoyée s'il y a des espaces blancs en début ou en fin de chaîne. De plus, plusieurs espaces seront considérés comme un seul délimiteur.
Si maxsplit est fourni, au maximum les fractionnements maxsplit sont effectués (ainsi, la liste aura au plus maxsplit+1 éléments). Si maxsplit n'est pas spécifié ou -1, alors il n'y a aucune limite sur le nombre de fractionnements et tous les fractionnements possibles sont renvoyés dans la liste.
Exemple de chaîne Python split()
Regardons un exemple simple où une chaîne sera divisée en une liste basée sur le délimiteur spécifié.
s = 'Python is Nice'
# simple string split example
str_list = s.split(sep=' ')
print(str_list)
Sortir :
['Python', 'is', 'Nice']
String split() avec exemple maxsplit
s = 'Python is Nice'
str_list = s.split(sep=' ', maxsplit=1)
print(str_list)
Résultat : ['Python', 'c'est sympa']
Notez que la liste renvoyée ne contient que 2 éléments, la chaîne n'a été divisée qu'une seule fois.
sep n'est pas fourni ou Aucun
s = ' Java Python iOS Android '
str_list = s.split()
print(str_list)
Résultat : ['Java', 'Python', 'iOS', 'Android']
Les espaces de début et de fin sont ignorés dans la liste renvoyée. De plus, les espaces consécutifs sont également considérés comme un délimiteur unique.
Exemple de fractionnement de chaîne multiligne
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)
Sortir :
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)
Sortie : ['Salut', 'Bonjour', 'Adios']
Exemple de fonction str.split()
Nous pouvons également utiliser la fonction split() directement à partir de la classe str.
print(str.split('ABACAD', sep='A'))
print(str.split('ABACAD', sep='A', maxsplit=2))
Sortir :
['', 'B', 'C', 'D']
['', 'B', 'CAD']
Notez qu'une chaîne vide est renvoyée lorsque le premier caractère correspond au séparateur.
Exemple de fractionnement de chaîne CSV avec entrée utilisateur
Enfin, regardons un exemple réel dans lequel l'utilisateur saisira les données CSV et nous les diviserons en 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)
Sortir :
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 fonctions python string split(). C'est une fonction très utile pour diviser une chaîne dans la liste en fonction d'un délimiteur.
Chaîne Python rsplit()
La fonction Python string rsplit() est très similaire à la fonction split(). La seule différence est que les grands écarts se font en commençant par l'extrémité du fil et en allant vers l'avant.
Examinons quelques exemples de fonctions 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)
Sortir :
['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, le résultat des fonctions split() et rsplit() est le même.