Python

Comment diviser des chaînes en Python

Comment diviser des chaînes en Python
Cet article expliquera comment diviser des chaînes en python à l'aide des méthodes "split()" et "partition()". Ces méthodes sont particulièrement utiles si vous souhaitez convertir une phrase ou un groupe de mots en types Python analysables et itérables. Tous les exemples de code de ce guide sont testés avec Python version 3.8.6.

Méthode de fractionnement

La méthode « split() » peut être utilisée pour diviser des mots à l'aide d'un séparateur spécifié par l'utilisateur. Il renvoie une liste de mots divisés sans inclure le séparateur. Si aucun séparateur n'est spécifié par l'utilisateur, un espace (un ou plusieurs) est utilisé comme séparateur unique.

Par exemple, le code ci-dessous renverra "['Linux', 'Hint']" en sortie :

text = "Astuce Linux"
texte.diviser()

Le code ci-dessous renverra "['LinuxHint', 'com']" comme sortie lorsque ".” est utilisé comme séparateur :

text = "LinuxHint.com"
texte.diviser(".”)

Le séparateur ne doit pas nécessairement être un seul caractère. La méthode split prend deux arguments :

Ces deux arguments sont facultatifs. Comme mentionné ci-dessus, si l'argument "sep" n'est pas spécifié, un espace est utilisé comme séparateur pour le fractionnement. L'argument "maxsplit" a une valeur par défaut de "-1" et il divise toutes les occurrences par défaut. Considérez le code ci-dessous :

text = "LinuxHint.co.nous"
texte.diviser(".”)

Il renverra "['LinuxHint', 'co', 'us']" comme sortie. Si vous souhaitez arrêter le fractionnement à la première occurrence du séparateur, spécifiez « 1 » comme argument « maxsplit ».

text = "LinuxHint.co.nous"
texte.diviser(".", 1)

Le code ci-dessus renverra "['LinuxHint', 'co.us']” comme sortie. Spécifiez simplement le nombre d'occurrences où vous souhaitez que le processus de division s'arrête comme deuxième argument.

Notez que s'il y a des séparateurs consécutifs, une chaîne vide sera renvoyée pour les séparateurs restants après le premier fractionnement (lorsque l'argument "maxsplit" n'est pas utilisé) :

text = "LinuxHint… com"
texte.diviser(".")

Le code ci-dessus renverra "['LinuxHint', ", 'com']" en sortie. Si vous souhaitez supprimer des chaînes vides de la liste résultante, vous pouvez utiliser l'instruction de compréhension de liste suivante :

text = "LinuxHint… com"
résultat = texte.diviser(".")
result = [élément pour élément dans le résultat si élément != ""]
imprimer (résultat)

Vous obtiendrez "['LinuxHint', 'com']" comme sortie après avoir exécuté l'exemple de code ci-dessus.

Notez que la méthode « split() » se déplace de gauche à droite pour diviser les chaînes en mots. Si vous souhaitez diviser la chaîne de droite à gauche, utilisez plutôt "rsplit ()". Sa syntaxe, son utilisation et ses arguments sont exactement les mêmes que la méthode "split()".

Si aucun séparateur n'est trouvé dans la chaîne lors de l'utilisation des méthodes « split() » ou « rsplit() », la chaîne d'origine est renvoyée comme seul élément de liste.

Méthode de partition

La méthode "partition()" peut être utilisée pour diviser des chaînes et elle fonctionne de la même manière que la méthode "split()" avec quelques différences. La différence la plus notable est qu'il conserve le séparateur et l'inclut en tant qu'élément dans le tuple résultant contenant des mots divisés. Ceci est particulièrement utile si vous souhaitez diviser la chaîne en un objet itérable (tuple dans ce cas) sans supprimer les caractères d'origine. Considérez le code ci-dessous :

text = "LinuxHint.com"
résultat = texte.cloison(".")
imprimer (résultat)

L'exemple de code ci-dessus renverra "('LinuxHint', '.', 'com')” comme sortie. Si vous souhaitez que le résultat soit de type liste, utilisez plutôt l'exemple de code suivant :

text = "LinuxHint.com"
résultat = liste(texte.cloison("."))
imprimer (résultat)

Vous devriez obtenir "['LinuxHint', '.', 'com']" comme sortie après avoir exécuté l'exemple de code ci-dessus.

La méthode "partition()" ne prend qu'un seul argument appelé "sep". Les utilisateurs peuvent spécifier un séparateur de n'importe quelle longueur. Contrairement à la méthode "split()", cet argument est obligatoire, vous ne pouvez donc pas omettre le séparateur. Cependant, vous pouvez spécifier un espace comme séparateur.

Notez que la méthode de partition s'arrête à la première occurrence du séparateur. Donc, si votre chaîne contient plusieurs séparateurs, la méthode "partition()" ignorera toutes les autres occurrences. Voici un exemple illustrant cela :

text = "LinuxHint.co.nous"
résultat = liste(texte.cloison("."))
imprimer (résultat)

L'exemple de code produira "['LinuxHint', '.', 'co.us']” comme sortie. Si vous souhaitez diviser toutes les occurrences du séparateur et inclure également le séparateur dans la liste finale, vous devrez peut-être utiliser un modèle « Expression régulière » ou « RegEx ». Pour l'exemple mentionné ci-dessus, vous pouvez utiliser un modèle RegEx de la manière suivante :

importation re
text = "LinuxHint.co.nous"
résultat = re.diviser("(\.)", texte)
imprimer (résultat)

Vous obtiendrez "['LinuxHint', '.', 'co', '.', 'us']" comme sortie après l'exécution de l'exemple de code ci-dessus. Le caractère point a été échappé dans la déclaration RegEx mentionnée ci-dessus. Notez que bien que l'exemple ci-dessus fonctionne avec un seul caractère de point, il peut ne pas fonctionner avec des séparateurs complexes et des chaînes complexes. Vous devrez peut-être définir votre propre modèle RegEx en fonction de votre cas d'utilisation. L'exemple est juste mentionné ici pour vous donner une idée du processus de rétention du séparateur dans la liste finale à l'aide d'instructions RegEx.

La méthode « partition() » peut parfois laisser des chaînes vides, notamment lorsque le séparateur n'est pas trouvé dans la chaîne à scinder. Dans de tels cas, vous pouvez utiliser des instructions de compréhension de liste pour supprimer les chaînes vides, comme expliqué dans la section méthode "split ()" ci-dessus.

text = "LinuxHint"
résultat = liste(texte.cloison("."))
result = [élément pour élément dans le résultat si élément != ""]
imprimer (résultat)

Après avoir exécuté le code ci-dessus, vous devriez obtenir "['LinuxHint']" en sortie.

Conclusion

Pour des fractionnements simples et directs, vous pouvez utiliser les méthodes « split() » et « partition() » pour obtenir des types itérables. Pour les chaînes et les séparateurs complexes, vous devrez utiliser des instructions RegEx.

Jeux HD remasterisés pour Linux qui n'ont jamais eu de version Linux plus tôt
De nombreux développeurs et éditeurs de jeux proposent une remasterisation HD d'anciens jeux pour prolonger la durée de vie de la franchise, veuillez ...
Comment utiliser AutoKey pour automatiser les jeux Linux
AutoKey est un utilitaire d'automatisation de bureau pour Linux et X11, programmé en Python 3, GTK et Qt. En utilisant ses fonctionnalités de script e...
Comment afficher le compteur FPS dans les jeux Linux
Les jeux Linux ont reçu une impulsion majeure lorsque Valve a annoncé la prise en charge de Linux pour le client Steam et leurs jeux en 2012. Depuis l...