Les listes font partie des objets mo­di­fiables, alors que les chaînes de ca­rac­tères sont immuables en Python. En con­ver­tis­sant une chaîne en une liste, vous pouvez modifier, ajouter ou supprimer des ca­rac­tères ou des sous-parties de la chaîne.

Hé­ber­ge­ment Web
Hé­ber­ge­ment Web de pointe au meilleur prix
  • 3x plus rapide, 60 % d'éco­no­mie
  • Haute dis­po­ni­bi­lité >99,99 %
  • Seulement chez IONOS : jusqu'à 500 Go inclus

Python String to List : méthodes de con­ver­sion

Python String to List désigne la con­ver­sion d’une chaîne de ca­rac­tères (strings en anglais) en une liste. La chaîne est alors convertie en une structure de données qui supporte des opé­ra­tions de liste et permet ainsi une ma­ni­pu­la­tion variée des données.

Voici quelques-unes des méthodes les plus courantes pour convertir une chaîne de ca­rac­tères en une liste :

split()

La méthode Python split décompose une chaîne de ca­rac­tères en une liste de sous-chaînes basée sur un sé­pa­ra­teur ou un motif spé­ci­fique. La syntaxe générale est la suivante :

string.split(sep=None, maxsplit=-1)
python
  • string : il s’agit de la chaîne de ca­rac­tères originale.
  • sep (optionnel) : c’est le sé­pa­ra­teur qui indique comment la chaîne doit être divisée. Si aucun sé­pa­ra­teur n’est indiqué, la méthode divise la chaîne au niveau des espaces.
  • maxsplit (optionnel) : maxsplit définit le nombre maximal de divisions à effectuer. S’il n’est pas spécifié ou s’il est fixé à -1, toutes les divisions possibles seront ef­fec­tuées.

Voici un exemple :

text = "blue,green,yellow,red"
print(f"List of colors = {text.split(',')}")
python

dont la sortie sera la suivante :

List of colors = ['blue', 'green', 'yellow', 'red']
python

Les chaînes de ca­rac­tères f (f-strings) sont une méthode de formatage string en Python et acceptent n’importe quelle ex­pres­sion comme caractère de rem­pla­ce­ment entre accolades. Nous pouvons donc associer le résultat de la fonction split() à la chaîne de ca­rac­tères "List of colors =".

list()

La fonction Python list() est utilisée pour convertir dif­fé­rentes struc­tures de données, y compris des chaînes de ca­rac­tères, en listes. Si vous passez une chaîne de ca­rac­tères en argument à la fonction list(), chaque lettre ou caractère de la chaîne sera stocké comme un élément séparé dans la liste ré­sul­tante.

text = "Bonjour"
char_list = list(text)
print(char_list)
# Output: ['B', 'o', 'n', 'j', 'o', 'u', 'r']
python

List comprehension

List Comprehension est une manière de créer des listes en combinant boucles et con­di­tions sur une seule ligne.

text = "Bonjour Monde"
char_list = [char for char in text]
print(char_list)
# Output: ['B', 'o', 'n', 'j', 'o', 'u', 'r', ' ', 'M', 'o', 'n', 'd', 'e']
python

Nous utilisons ici la chaîne de ca­rac­tères "Bonjour Monde", à partir de laquelle nous créons une liste et la stockons dans char_list. List Compréhension parcourt chaque lettre char dans la chaîne text et l’ajoute comme élément unique à la liste char_list.

String Slicing

String Slicing est une autre méthode Python String to List qui extrait des séquences par­tielles d’une chaîne de ca­rac­tères et les stocke comme éléments dans une liste.

substring_list = string[start:stop:step]
python
  • start : l’index où commence le slicing (la découpe) ; l’extrait de la chaîne commence au caractère se trouvant à cette position.
  • stop : l’index où le slicing se termine ; la séquence se termine avant le caractère à cette position.
  • step (optionnel) : le pas ou l’incrément selon lequel le slicing est effectué ; cela indique combien de ca­rac­tères sont omis entre chaque caractère sé­lec­tionné.
def convert(string):
    list1 = []
    list1[:0] = string
    return list1
str1 = "xyz"
print(convert(str1))
# Output: ['x', 'y', 'z']
python

convert(string) est une fonction définie par l’uti­li­sa­teur qui convertit une chaîne de ca­rac­tères en une liste de ca­rac­tères. Quand l’ex­pres­sion list1[:0] = string est exécutée, les dif­fé­rents ca­rac­tères de la chaîne sont insérés dans la liste vide list1.

re.findall()

La fonction re.findall() peut être utilisée comme méthode Python String to List pour trouver toutes les cor­res­pon­dances d’une ex­pres­sion régulière dans une chaîne de ca­rac­tères et les renvoyer sous forme de liste.

import re
text = "123 and 456 are numbers."
numbers_list = re.findall(r'\d+', text)
print(numbers_list)
# Output: ['123', '456']
python

L’ex­pres­sion régulière r'\d+' recherche un ou plusieurs chiffres con­sé­cu­tifs dans le texte et les renvoie sous forme d’éléments séparés dans une liste.

enumerate()

enumerate() est une fonction intégrée dans Python qui sert à obtenir à la fois l’index et la valeur de chaque élément dans une structure de données itérable. Si vous souhaitez que la liste ne contienne que les valeurs (c’est-à-dire les ca­rac­tères de la chaîne), vous pouvez utiliser enumerate() en com­bi­nai­son avec une List com­pre­hen­sion :

text = "Python"
char_list = [char for index, char in enumerate(text)]
print(char_list)
# Output: ['P', 'y', 't', 'h', 'o', 'n']
python

JSON

JSON est un module utilisé pour lire et écrire des données JSON et pour convertir des struc­tures de données Python au format JSON et in­ver­se­ment. Pour la fonction Python String to List, le module JSON offre la pos­si­bi­lité d’analyser une chaîne de ca­rac­tères dans un objet Python cor­res­pon­dant.

import json
json_string = '[1, 2, 3, 4, 5]'
list_from_json = json.loads(json_string)
print(list_from_json)
# Output: [1, 2, 3, 4, 5]
python

La fonction json.loads() analyse la chaîne JSON et la convertit en un objet Python cor­res­pon­dant, dans le cas présent en une liste.

ast.literal

Le module ast (Abstract Syntax Trees) vous permet d’évaluer une chaîne de ca­rac­tères dans une structure de données Python, la chaîne étant in­ter­pré­tée comme un littéral Python. Si vous avez une chaîne qui est dans un format littéral Python valide (par exemple une liste, un dic­tion­naire, un nombre, etc.), vous pouvez utiliser ast.literal_eval() pour convertir cette chaîne en toute sécurité dans l’objet Python cor­res­pon­dant.

import ast
string = "[1, 2, 3, 4, 5]"
my_list = ast.literal_eval(string)
print(my_list)
# Output: [1, 2, 3, 4, 5]
python

Le sujet vous intéresse ? Dans notre Digital Guide, nous vous ex­pli­quons également comment fonc­tionne la con­ver­sion « String to Datetime » en Python.

Aller au menu principal