La fonction de fractionnement sépare et répertorie une chaîne de caractères contenant des nombres, des alphabets, des symboles, etc. selon une certaine règle. Écrire un programme qui sépare les chaînes de zéro peut être très fastidieux, et pour les débutants, cela peut être une tâche ardue qui peut prendre une journée si vous n'êtes pas doué pour l'écrire. La fonction Split est une fonction très pratique qui vous libère d'une telle complexité. Le simple fait de le savoir changera considérablement votre efficacité au travail.
table des matières 1 [Utilisation de base de la fonction de fractionnement](## Utilisation de base de la fonction de fractionnement) 2 [Application du délimiteur](## Application du délimiteur) 3 [fonction rsplit](fonction ## rsplit)
Par exemple, considérez le cas où les données que vous avez créées sont séparées par "," comme indiqué ci-dessous.
>>> print test
orange,apple,banana,strawberry
Vous pouvez obtenir une liste séparée par des délimiteurs en utilisant le nom de chaîne .split («séparateur»).
>>> test.split(",") #Le délimiteur de liste "test",Séparé par
['orange', 'apple', 'banana', 'strawberry']
En outre, lorsque le délimiteur est un espace, un saut de ligne ou une tabulation, vous pouvez le séparer sans spécifier de délimiteur.
>>> test = "orange apple banana strawberry"
>>> test.split() #Si rien n'est spécifié dans l'argument, il sera automatiquement séparé par des espaces ou des tabulations.
['orange', 'apple', 'banana', 'strawberry']
Si vous l'utilisez, par exemple, même s'il y a deux espaces dans le délimiteur, vous pouvez le diviser proprement.
>>> test = "2016 November 15" #Il est séparé par deux espaces.
>>> test.split() #
['2016', 'November', '15']
Même s'il existe plusieurs délimiteurs entre les caractères que vous souhaitez diviser de cette manière, vous pouvez facilement le gérer avec cela.
De plus, si vous voulez faire quelque chose de bondé, par exemple "Séparez jusqu'au deuxième, ne séparez pas le troisième et les suivants", vous pouvez procéder comme suit.
>>> test = "orange,apple,banana,strawberry"
>>> test.split(",", 2) #Divisez jusqu'à la deuxième fois et ne divisez pas après la troisième fois.
['orange', 'apple', 'banana,strawberry']
Ensuite, que se passe-t-il si vous souhaitez séparer uniquement le premier sans spécifier le délimiteur? Par exemple, lorsque j'ai essayé ce qui suit, j'ai eu une erreur.
>>> test = "2016 November 15" #Il est séparé par deux espaces.
>>> test.split(1) #Je voulais séparer uniquement le premier. .. ..
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: expected a character buffer object
En termes Python, le premier argument de la fonction split semble inutile sans un délimiteur.
Dans ce cas, None est utilisé pour signifier "l'utilisateur ne spécifie pas explicitement le délimiteur".
>>> test = "2016 November 15" #Il est séparé par deux espaces.
>>> test.split(None,1)
['2016', 'November 15']
En faisant cela, j'ai réussi à ne diviser que le premier.
Nous allons également introduire la fonction rsplit, qui a une relation sœur avec la fonction split. rsplit est fondamentalement le même que split. Cependant, split a un ordre de délimitation à partir du début de la chaîne, tandis que rsplit a un ordre de délimitation à partir de la fin de la chaîne. En aparté, le "r" dans rsplit semble venir de la droite, ce qui signifie du côté droit de la corde, ou de l'arrière, ce qui signifie après.
Allons-y.
>>> test = "orange,apple,banana,strawberry"
>>> test.rsplit(",") # “,Séparez par ". Il n'y a pas de limite au nombre de divisions.
['orange', 'apple', 'banana', 'strawberry']
Si seul le délimiteur est donné à l'argument de rsplit de cette manière, la fonction rsplit = fonction split. Maintenant, ajoutez le nombre de délimiteurs comme argument (= 2).
>>> test = "orange,apple,banana,strawberry"
>>> test.rsplit(",",2)
['orange,apple', 'banana', 'strawberry']
Vous pouvez voir que la seconde de l'arrière est certainement séparée.
De plus, le délimiteur n'a pas besoin d'être un caractère. Les fonctions split et rsplit fonctionnent sans aucun problème avec les chaînes.
>>> test = "orangehogeapplehogebananahogestrawberry"
>>> test.split("hoge") #La chaîne hoge correspond au délimiteur
['orange', 'apple', 'banana', 'strawberry']
Recommended Posts