Strings und Listen

Wenn du dir nicht sicher bist, in welchem der anderen Foren du die Frage stellen sollst, dann bist du hier im Forum für allgemeine Fragen sicher richtig.
Antworten
bas_oldy
User
Beiträge: 18
Registriert: Donnerstag 23. August 2018, 20:09

Hallo Leute,

ich lese aus einem Textfile einen String
astring = [[8, 9, 12, 13], [0, 1], [3, 7], [5], [6], [18], [19]]
erkenntlich durch type(astring) ergibt <class 'str'>
benötige aber eine Liste die äußerlich genau so aussieht
alist = [[8, 9, 12, 13], [0, 1], [3, 7], [5], [6], [18], [19]]
aber mit type(alist) ergibt <class 'list'>.

alist = list(astring) macht eine Liste [‘[‘, ‘[‘, ‘8‘, ‘ ‘, ... usw.

Wie kann ich den String in die Liste umwandeln?

Für jede Hilfe herzlichen Dank
Benutzeravatar
pillmuncher
User
Beiträge: 1530
Registriert: Samstag 21. März 2009, 22:59
Wohnort: Pfaffenwinkel

Was du da hast ist vermutlich keine Text-Datei, sondern eine JSON-Datei. Dafür verwendet das json-Modul aus der Python Standard-Bibliothek:

Code: Alles auswählen

>>> import json
>>> astring = "[[8, 9, 12, 13], [0, 1], [3, 7], [5], [6], [18], [19]]"
>>> alist = json.loads(astring)
>>> alist
[[8, 9, 12, 13], [0, 1], [3, 7], [5], [6], [18], [19]]
>>> type(alist)
<class 'list'>
In dem Modul gibt es auch eine Funktion, mit der man direkt JSON-Dateien einlesen kann.
In specifications, Murphy's Law supersedes Ohm's.
bas_oldy
User
Beiträge: 18
Registriert: Donnerstag 23. August 2018, 20:09

Herzlichen Dank an pillmuncher.

Die Datei steht mit .txt im Verzeichnis, aber dein Tipp mit json funktioniert.
Benutzeravatar
__blackjack__
User
Beiträge: 14047
Registriert: Samstag 2. Juni 2018, 10:21
Wohnort: 127.0.0.1
Kontaktdaten:

Wie ist die Datei denn entstanden? Falls das tatsächlich mal eine Python-Liste mit Zahlen war, die einfach mit `str()` in eine Zeichenkette umgewandelt und dann in eine Datei geschrieben wurde, dann sollte man an der Stelle besser auch das Programm anpassen, denn die Darstellung von Python-Datenstrukturen eignet sich nur sehr bedingt zur Datenspeicherung und zum Datenaustausch. Bei Listen mit Zahlen hat man Glück, dass das JSON-Arrays und -Zahlen sehr ähnlich ist, und man die meisten Werte als JSON lesen kann, aber selbst bei Zahlen hat das Grenzen.
“Vir, intelligence has nothing to do with politics!” — Londo Mollari
Antworten