HOWTO · Python
String in Python auflisten lassen
Es gibt 4 Hauptmethoden, die verwendet werden können, um eine Stringdarstellung einer Liste in eine tatsächliche Liste zu parsen, die str.split(), die str.strip(), die json.loads() und die ast.literal_eval() Funktionen.
In diesem Tutorial lernen wir die Methoden zum Parsen eines Strings in eine Liste in Python kennen.
String mit der Funktion str.split() in Python in eine Liste zerlegen
Wenn wir in einem Szenario eine Stringdarstellung einer Liste wie '[ "A","B","C" , " D"]' haben und diese Darstellung in eine tatsächliche Liste von Strings umwandeln möchten, können wir Verwenden Sie die Funktion str.split(), um den String anhand jedes , aufzuteilen. Die Funktion str.split() nimmt ein Trennzeichen/Trennzeichen als Eingabeparameter, teilt den aufrufenden String anhand des Trennzeichens auf und gibt eine Liste von TeilZeichenketten zurück. Das folgende Codebeispiel zeigt uns, wie man eine String-Darstellung einer Liste mit der Funktion str.split() in eine tatsächliche Liste umwandelt.
stringlist = '[ "A","B","C" , " D"]'
print(stringlist.split(","))
Ausgabe:
['[ "A"', '"B"', '"C" ', ' " D"]']
Wir haben den String stringlist in eine Liste umgewandelt, indem wir ihn basierend auf , mit der Funktion stringlist.split(",") aufgeteilt haben. Wie aus der Ausgabe hervorgeht, weist dieser Ansatz mehrere Probleme auf und entspricht nicht richtig unseren Anforderungen.
String mit der Funktion str.strip() in Python in eine Liste zerlegen
Um einen solchen String weiter in eine Liste umzuwandeln, können wir die Funktion str.strip() verwenden. Diese Funktion str.strip() nimmt auch das Trennzeichen/Trennzeichen als Eingabeparameter, entfernt die aufrufende Zeichenkette basierend auf dem Trennzeichen und gibt eine Liste mit viel saubereren TeilZeichenketten zurück. Der folgende Beispielcode zeigt uns, wie man eine String-Darstellung einer Liste mit der Funktion str.strip() in eine tatsächliche Liste umwandelt.
stringlist = '[ "A","B","C" , " D"]'
print(stringlist.strip(","))
Ausgabe:
[ "A","B","C" , " D"]
Wir haben den String stringlist in eine Liste umgewandelt, indem wir ihn auf der Basis von , mit der Funktion stringlist.split(",") aufgeteilt haben. Wir bekommen diesmal eine viel sauberere Liste von Saiten. Der einzige Nachteil dieses Ansatzes besteht darin, dass es einige unerwünschte Leerzeichen wie das Leerzeichen im vierten Element der Liste gibt.
Analysieren Sie den String in eine Liste mit der Funktion json.loads() in Python
Für unser spezielles Problem können wir auch das Modul json verwenden. Die json.loads()-Funktion nimmt ein JSON-Objekt als Parameter, deserialisiert das JSON-Objekt und gibt die Ergebnisse in einer Liste zurück. Der JSON-Objektparameter kann in diesem Fall auch ein String sein. Der folgende Beispielcode zeigt uns, wie man eine String-Darstellung einer Liste mit der Funktion json.loads() in eine tatsächliche Liste umwandelt.
import json
stringlist = '[ "A","B","C" , " D"]'
print(json.loads(stringlist))
Ausgabe:
['A', 'B', 'C', ' D']
Wir haben unseren String stringlist mit der Funktion json.loads(stringlist) in Python in eine saubere Liste umgewandelt. Der einzige Unterschied zwischen der Funktion json.loads() und unseren bisherigen Ansätzen besteht darin, dass wir hier kein Trenn- oder Trennzeichen angeben müssen. Die Funktion json.loads() bestimmt automatisch das Trennzeichen für uns. Diese Methode enthält auch das Problem unerwünschter Leerzeichen.
Parse String in Liste mit der Funktion ast.literal_eval() in Python
Eine andere Methode zur Lösung unseres spezifischen Problems ist das Modul ast. Die ast.literal_eval()-Funktion nimmt eine String-Darstellung einer Python-Literalstruktur wie Tupel, Wörterbücher, Listen und Mengen an. Wenn wir den String an diese Literalstruktur übergeben, gibt er die Ergebnisse zurück. In unserem Fall haben wir eine String-Darstellung einer Liste. Also nimmt die Funktion ast.literal_eval() diesen String, parst ihn in eine Liste und gibt die Ergebnisse zurück. Der folgende Codeausschnitt zeigt uns, wie man eine String-Darstellung einer Liste mit der Funktion ast.literal_eval() in eine tatsächliche Liste umwandelt.
import ast
stringlist = '[ "A","B","C" , " D"]'
print(ast.literal_eval(stringlist))
Ausgabe:
['A', 'B', 'C', ' D']
Wir haben den String stringlist mit der Funktion ast.literal_eval() in Python in eine saubere Liste umgewandelt. Ähnlich wie beim vorherigen Ansatz müssen wir kein Trennzeichen oder Trennzeichen angeben. Auch ähnlich dem vorherigen Ansatz weist dieses Verfahren das gleiche Problem unerwünschter Leerzeichen auf. Aber diese Leerzeichen können leicht entfernt werden.