Fractionner une chaîne par WhiteSpace en Python

Rayven Esplanada 30 janvier 2023
  1. Utilisez la méthode String split() pour fractionner une chaîne en Python
  2. Utilisez re.split() pour diviser une chaîne en Python
Fractionner une chaîne par WhiteSpace en Python

Ce didacticiel montrera comment diviser une chaîne par des espaces en tant que délimiteurs en Python.

Diviser des chaînes en Python signifie couper une seule chaîne en un tableau de chaînes en fonction du délimiteur ou du séparateur utilisé.

Par exemple, si une chaîne initialisée comme Hello, World! I am here. existe, le fractionner avec un espace comme délimiteur entraînera la sortie suivante.

["Hello,", "World!", "I", "am", "here."]

Utilisez la méthode String split() pour fractionner une chaîne en Python

La méthode de chaîne Python intégrée split() est une solution parfaite pour fractionner des chaînes en utilisant des espaces. Par défaut, la méthode split() retourne un tableau de sous-chaînes résultant du fractionnement de la chaîne d’origine en utilisant des espaces comme délimiteur.

Par exemple, utilisons le même exemple de chaîne Hello, World! I am here.. Nous utiliserons la méthode split() pour séparer la chaîne en un tableau de sous-chaînes.

string_list = "Hello, World! I am here.".split()

print(string_list)

Le résultat est comme prévu:

["Hello,", "World!", "I", "am", "here."]

En plus de cela, la méthode split() supprime également automatiquement les espaces de début et de fin et les traite comme un seul séparateur d’espaces.

Modifions l’exemple précédent pour inclure des espaces aléatoires de début, de fin et consécutifs.

string_list = "      Hello,   World! I am     here.   ".split()

print(string_list)

Un autre scénario que la méthode split() gère automatiquement sont les tabulations, les retours à la ligne et les retours chariot désignés par \t, \n et \r en dehors du littéral d’espace blanc. Les formats d’espaces mentionnés sont également considérés comme des délimiteurs et des sujets de rognage.

Production:

['Hello,', 'World!', 'I', 'am', 'here.']

Par exemple:

string_list = " Hello,   World! I am here.\nI am also\there too,\rand here.".split()

print(string_list)

Production:

['Hello,', 'World!', 'I', 'am', 'here.', 'I', 'am', 'also', 'here', 'too,', 'and', 'here.']

Compte tenu de ces facteurs, vous n’avez pas à vous soucier de couper explicitement tous les espaces avant d’exécuter la fonction. C’est une fonctionnalité pratique à avoir.

Utilisez re.split() pour diviser une chaîne en Python

Le module Python RegEx (Regular Expressions) re a également une fonction prédéfinie split() que nous pouvons utiliser à la place de la méthode intégrée split(). Cependant, notez que le re.split() est plus lent que la méthode intégrée split() du point de vue des performances.

La fonction re.split() accepte deux paramètres principaux, une chaîne RegEx et la chaîne pour effectuer la fonction de fractionnement. Le mot clé RegEx qui représente les espaces est \s. \s est un classement de tous les types d’espaces, y compris ceux mentionnés ci-dessus (\n, \t, \r, \f).

Par exemple, déclarez une chaîne et exécutez re.split() pour les diviser en un tableau de sous-chaînes. Pour prendre en compte les espaces de fin et de début, ajoutez un signe + à la chaîne RegEx pour faire correspondre un ou plusieurs espaces consécutifs en un seul groupe.

Ajoutez également le mot-clé r à la chaîne RegEx pour vous assurer que Python traite correctement les séquences d’échappement.

import re

exStr = "Hello, World!\nWelcome\tto my   tutorial\rarticle."

print(re.split(r"\s+", exStr))

Utilisez re.findall() au lieu de re.split() pour diviser une chaîne en Python

Alternativement, re.findall() peut également être utilisé. La fonction findall() fonctionne à l’opposé de split(). Cette fonction trouve toutes les sous-chaînes qui correspondent à la chaîne RegEx donnée, tandis que la méthode split() utilise la chaîne RegEx comme délimiteur.

Pour utiliser la fonction findall() pour scinder la chaîne en utilisant des espaces, annulez le mot-clé \s en mettant la lettre en majuscule (\S). findall() accepte les mêmes paramètres que split().

import re

exStr = "Hello, World!\nWelcome\tto my   tutorial\rarticle."

print(re.findall(r"\S+", exStr))

Les deux fonctions produiront la même sortie:

["Hello,", "World!", "Welcome", "to", "my", "tutorial", "article."]

En résumé, la meilleure et la plus optimale façon de diviser une chaîne en utilisant des espaces comme séparateur est la méthode intégrée split(). Il est attaché à l’objet chaîne et prend en compte les espaces de début et de fin par défaut. Son utilisation ne nécessite pas non plus de connaissances sur les expressions régulières.

Sinon, re.split() et re.findall() peuvent être utilisés comme substituts de la méthode split(), bien que les deux fonctions fonctionnent plus lentement que la méthode intégrée split().

Rayven Esplanada avatar Rayven Esplanada avatar

Skilled in Python, Java, Spring Boot, AngularJS, and Agile Methodologies. Strong engineering professional with a passion for development and always seeking opportunities for personal and career growth. A Technical Writer writing about comprehensive how-to articles, environment set-ups, and technical walkthroughs. Specializes in writing Python, Java, Spring, and SQL articles.

LinkedIn

Article connexe - Python String