Analyser la chaîne à lister en Python

Muhammad Maisam Abbas 30 janvier 2023
  1. Analyser la chaîne à la liste avec la fonction str.split() en Python
  2. Analyser la chaîne à la liste avec la fonction str.strip() en Python
  3. Analyser la chaîne à la liste avec la fonction json.loads() en Python
  4. Analyser la chaîne à la liste avec la fonction ast.literal_eval() en Python
Analyser la chaîne à lister en Python

Dans ce tutoriel, nous allons apprendre les méthodes pour analyser une chaîne en une liste en Python.

Analyser la chaîne à la liste avec la fonction str.split() en Python

Si dans un scénario, nous avons une représentation sous forme de chaîne d’une liste comme '[ "A","B","C" , " D"]' et que nous voulons convertir cette représentation en une liste réelle de chaînes, nous pouvons utilisez la fonction str.split() pour diviser la chaîne sur la base de chaque ,. La fonction str.split() prend un délimiteur/séparateur comme paramètre d’entrée, divise la chaîne d’appel en fonction du délimiteur et renvoie une liste de sous-chaînes. L’exemple de code ci-dessous nous montre comment analyser une représentation sous forme de chaîne d’une liste dans une liste réelle avec la fonction str.split().

stringlist = '[ "A","B","C" , " D"]'
print(stringlist.split(","))

Production :

['[ "A"', '"B"', '"C" ', ' " D"]']

Nous avons converti la chaîne stringlist en une liste en la divisant en fonction de , avec la fonction stringlist.split(","). Comme il ressort du résultat, cette approche présente plusieurs problèmes et ne répond pas correctement à nos exigences.

Analyser la chaîne à la liste avec la fonction str.strip() en Python

Pour convertir davantage une chaîne comme celle-ci en liste, nous pouvons utiliser la fonction str.strip(). Cette fonction str.strip() prend également le délimiteur/séparateur comme paramètre d’entrée, supprime la chaîne d’appel en fonction du délimiteur et renvoie une liste de sous-chaînes beaucoup plus claires. L’exemple de code ci-dessous nous montre comment analyser une représentation sous forme de chaîne d’une liste dans une liste réelle avec la fonction str.strip().

stringlist = '[ "A","B","C" , " D"]'
print(stringlist.strip(","))

Production :

[ "A","B","C" , " D"]

Nous avons converti la chaîne stringlist en liste en la divisant sur la base de , avec la fonction stringlist.split(","). Nous obtenons cette fois-ci une liste de chaînes beaucoup plus claire. Le seul inconvénient de cette approche est qu’il y a des espaces blancs indésirables comme l’espace dans le quatrième élément de la liste.

Analyser la chaîne à la liste avec la fonction json.loads() en Python

Nous pouvons également utiliser le module json pour notre problème spécifique. La fonction json.loads() prend un objet JSON en paramètre, désérialise l’objet JSON et renvoie les résultats dans une liste. Le paramètre d’objet JSON, dans ce cas, peut également être une chaîne. L’exemple de code ci-dessous nous montre comment analyser une représentation sous forme de chaîne d’une liste dans une liste réelle avec la fonction json.loads().

import json

stringlist = '[ "A","B","C" , " D"]'
print(json.loads(stringlist))

Production :

['A', 'B', 'C', ' D']

Nous avons converti notre chaîne stringlist en une liste plus propre avec la fonction json.loads(stringlist) en Python. La seule différence entre la fonction json.loads() et nos approches précédentes est que nous n’avons pas à spécifier de caractère délimiteur ou séparateur ici. La fonction json.loads() détermine automatiquement le délimiteur pour nous. Cette méthode contient également le problème des espaces blancs indésirables.

Analyser la chaîne à la liste avec la fonction ast.literal_eval() en Python

Une autre méthode pour résoudre notre problème spécifique est le module ast. La fonction ast.literal_eval() prend une représentation sous forme de chaîne d’une structure littérale Python comme des tuples, des dictionnaires, des listes et des ensembles. Si nous passons la chaîne dans cette structure littérale, elle renvoie les résultats. Dans notre cas, nous avons une représentation sous forme de chaîne d’une liste. Ainsi, la fonction ast.literal_eval() prend cette chaîne, l’analyse dans une liste et renvoie les résultats. L’extrait de code suivant nous montre comment analyser une représentation sous forme de chaîne d’une liste dans une liste réelle avec la fonction ast.literal_eval().

import ast

stringlist = '[ "A","B","C" , " D"]'
print(ast.literal_eval(stringlist))

Production :

['A', 'B', 'C', ' D']

Nous avons converti la chaîne stringlist en une liste plus propre avec la fonction ast.literal_eval() en Python. Semblable à l’approche précédente, nous n’avons pas à spécifier de délimiteur ou de séparateur. Également similaire à l’approche précédente, cette méthode présente le même problème d’espaces blancs indésirables. Mais ces espaces vides peuvent être facilement supprimés.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

Article connexe - Python String

Article connexe - Python List