Dans le langage de pro­gram­ma­tion Python, plusieurs façons de créer des « subs­trings » ou sous-chaînes ou de vérifier les oc­cur­rences de sous-chaînes dans une chaîne sont proposées.

Qu’est-ce qu’une sous-chaîne ?

Une sous-chaîne n’est en principe rien de plus qu’un élément d’une string Python. Les « strings » sont des chaînes de ca­rac­tères de toute taille. Si seule une partie d’une telle chaîne vous intéresse et que vous extrayez celle-ci, vous ob­tien­drez ce qui s’appelle une « substring » ou sous-chaîne en français. Un exemple simple est la chaîne « Hello World! », que vous pouvez par exemple diviser en deux sous-chaînes « Hello » et « World! ». Notez que les sous-chaînes ne sont pas né­ces­sai­re­ment des mots in­di­vi­duels. Chaque lettre et caractère d’une chaîne peuvent également cons­ti­tuer une sous-chaîne distincte.

Conseil

Si vous envisagez d’opter pour Python pour réaliser un projet Web, Deploy Now de IONOS peut cons­ti­tuer une option in­té­res­sante. En mettant en place un flux de travail GitHub au­to­ma­tisé, vous pouvez déployer et cons­truire vos projets Web en toute sim­pli­cité.

Créer une sous-chaîne Python

Slicing

Si vous voulez écrire du code Python qui crée une sous-chaîne pour vous, vous pouvez alors vous tourner vers la fonc­tion­na­lité la plus populaire de Python du « Slicing ». Cette fonction de découpage vous permet de spécifier où votre sous-chaîne doit commencer et où elle doit se terminer à l’aide d’index. Vous passez les index entre crochets, séparés par deux points. L’index de début est inclusif, tandis que l’index de fin est exclusif. La syntaxe du slicing en Python s’apparente donc à ceci :

string[début:fin]
python

Un exemple de code concret permet d’illustrer la fonction de découpage ou « slicing » :

s = "Python est un langage de programmation populaire."
résultat = s[0:6]
python

On commence par créer une chaîne nommée « s ». Le slicing s’observe dans la deuxième ligne de l’exemple de code. Après le nom de la chaîne sont spécifiés entre crochets d’abord l’index de début 0 qui est suivi d’un deux-points, puis l’index de fin 6. Par con­sé­quent, la sous-chaîne de « s », qui se compose du caractère zéro au cinquième caractère inclus, est stockée dans la variable nommée « résultat ». Dans notre cas, la variable « résultat » contenait le mot « Python ».

Si vous voulez découper une chaîne à partir du début ou de la fin, vous pouvez rac­cour­cir encore plus la notation du slicing Python : si vous ne spécifiez pas d’index de début, l’index 0 est sé­lec­tionné par défaut. Si vous omettez cependant l’index de fin, le slicing va créer une sous-chaîne Python qui s’étend jusqu’à la fin de la chaîne initiale.

Si vous voulez faire débuter l’ex­trac­tion de sous-chaînes dans votre chaîne Python initiale à partir de la fin, vous pouvez utiliser une notation rac­cour­cie qui utilise des index négatifs :

s = "Python est un langage de programmation populaire."
résultat = s[-24:]
python

Dans l’exemple de code ci-dessus, la variable nommée « résultat » contient les 24 derniers ca­rac­tères de la chaîne d’origine « s ». Ainsi, la chaîne « pro­gram­ma­tion populaire » apparaît dans la variable « résultat ».

Méthodes string

Outre le slicing en Python, un certain nombre de méthodes String pré­dé­fi­nies vous permet d’extraire une sous-chaîne Python d’une chaîne.

La fonction slice

Comme son nom le laisse supposer, la fonction slice fonc­tionne comme le slicing en Python. La syntaxe de la fonction slice rappelle également fortement le slicing déjà mentionné. Elle adopte un index de début et un index de fin et renvoie la sous-chaîne cor­res­pon­dante :

string.slice(début, fin)
python

La fonction substring

La méthode substring est également idéale pour extraire des sous-chaînes Python. Sur le plan de la syntaxe, elle ressemble à la fonction slice. Le com­por­te­ment est également analogue :

string.substring(début, fin)
python

La fonction split

Si plusieurs sous-chaînes Python vous in­té­res­sent au lieu d’une seule, vous devriez vous pencher sur Python split. La fonction vous permet de diviser une chaîne en sous-chaînes à l’aide d’un symbole sé­pa­ra­teur passé dans une liste Python. La syntaxe n’est pas com­pli­quée :

string.split(séparateur)
python

À nouveau, ayons recours à un exemple de code court pour mieux com­prendre la procédure de la fonction split :

s = "Python est un langage de programmation populaire."
résultat = s.split(" ")
python

L’appel de la fonction split en Python accepte le sé­pa­ra­teur en argument : cela cor­res­pond à un espace dans notre cas. Une liste de toutes les sous-chaînes Python séparées par un espace dans la chaîne d’origine est main­te­nant stockée dans la variable « résultat » : « [‘Python’, ‘est’, ‘un’, ‘langage’, ‘de’, ‘pro­gram­ma­tion’, ‘populaire’.’]«

Sous-chaînes résultant d’ex­pres­sions ré­gu­lières

Vous pouvez également en­re­gis­trer des Python Subs­trings dans une liste si vous appliquez une ex­pres­sion régulière à une chaîne, puis utilisez la fonction findall issue de la bi­blio­thèque « re ». Les ex­pres­sions ré­gu­lières en Python cor­res­pon­dent à un format de trai­te­ment des chaînes qui retrouve des motifs spé­ci­fiques dans les chaînes. La fonction findall prend une ex­pres­sion régulière en premier paramètre de transfert et une chaîne en second paramètre. Un exemple de code permet d’illustrer la procédure :

import re
s = "Python est un langage de programmation populaire."
résultat = re.findall(r"\w+", s)
python

La bi­blio­thèque « re » est importée dans la première ligne de code pour que la fonction findall soit ac­ces­sible par la suite. L’ex­pres­sion régulière « r“\w+“ » ainsi que la chaîne déjà connue dans la variable nommée « s » sont alors passées à celle-ci. L’ex­pres­sion régulière peut sembler étrange à première vue, mais elle n’exprime rien d’autre que la nécessité d’extraire tous les mots d’une chaîne. Ainsi, nous ne sommes pas surpris de retrouver une liste de sous-chaînes Python dans la variable nommée « résultat » : « [‘Python’, ‘est’, ‘un’, ‘langage’, ‘de’, ‘pro­gram­ma­tion’, ‘populaire’.’] ».

Aller au menu principal