# Python String to List : conversion de chaînes en listes

Les listes font partie des objets modifiables, alors que les chaînes de caractères sont immuables en Python. En **convertissant une chaîne en une liste**, vous pouvez modifier, ajouter ou supprimer des caractères ou des sous-parties de la chaîne.

## Python String to List : méthodes de conversion

Python String to List désigne la conversion d’une chaîne de caractères (*strings* en anglais) en une liste. La chaîne est alors convertie en une structure de données qui **supporte des opérations de liste** et permet ainsi une manipulation variée des données.

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

### `split()`

La méthode [Python split](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/python-split/) décompose une chaîne de caractères en une **liste de sous-chaînes** basée sur un séparateur ou un motif spécifique. La syntaxe générale est la suivante :

```python
string.split(sep=None, maxsplit=-1)
```

- `string` : il s’agit de la chaîne de caractères originale.
- `sep` (optionnel) : c’est le séparateur qui indique comment la chaîne doit être divisée. Si aucun séparateur 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 effectuées.

Voici un exemple :

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

dont la sortie sera la suivante :

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

Les chaînes de caractères f (f-strings) sont une méthode de [formatage string en Python](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/python-string-format/) et acceptent n’importe quelle expression comme caractère de remplacement entre accolades. Nous pouvons donc associer le résultat de la fonction `split()` à la chaîne de caractères `"List of colors ="`.

### `list()`

La fonction [Python `list()`](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/python-list/) est utilisée pour convertir différentes structures de données, y compris des chaînes de caractères, en listes. Si vous passez une chaîne de caractè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ésultante.

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

### `List comprehension`

`List Comprehension` est une manière de créer des listes en combinant **boucles et conditions** sur une seule ligne.

```python
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']
```

Nous utilisons ici la chaîne de caractè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 partielles d’une chaîne de caractères** et les stocke comme éléments dans une liste.

```python
substring_list = string[start:stop:step]
```

- `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 caractères sont omis entre chaque caractère sélectionné.

```python
def convert(string):
    list1 = []
    list1[:0] = string
    return list1
str1 = "xyz"
print(convert(str1))
# Output: ['x', 'y', 'z']
```

`convert(string)` est une **fonction définie par l’utilisateur** qui convertit une chaîne de caractères en une liste de caractères. Quand l’expression `list1[:0] = string` est exécutée, les différents caractè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 correspondances d’une expression régulière** dans une chaîne de caractères et les renvoyer sous forme de liste.

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

L’expression régulière `r'\d+'` recherche un ou plusieurs chiffres consécutifs 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 caractères de la chaîne), vous pouvez utiliser `enumerate()` en combinaison avec une List comprehension :

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

### JSON

JSON est un module utilisé pour lire et écrire des données JSON et pour convertir des structures de données Python au format JSON et inversement. Pour la fonction Python String to List, le module JSON offre la possibilité d’analyser une **chaîne de caractères dans un objet Python correspondant**.

```python
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]
```

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

### `ast.literal`

Le module `ast` (*Abstract Syntax Trees*) vous permet d’évaluer une chaîne de caractères dans une structure de données Python, la chaîne étant interpré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 dictionnaire, un nombre, etc.), vous pouvez utiliser `ast.literal_eval()` pour convertir cette chaîne en toute sécurité dans l’objet Python correspondant.

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

Le sujet vous intéresse ? Dans notre Digital Guide, nous vous expliquons également comment fonctionne la [conversion « String to Datetime » en Python](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/python-string-to-datetime/).


This is a markdown version of: [https://www.ionos.fr/digitalguide/sites-internet/developpement-web/python-string-to-list/](https://www.ionos.fr/digitalguide/sites-internet/developpement-web/python-string-to-list/) for AI/LLM consumption.