Seite 1 von 1

Strings und Listen

Verfasst: Montag 3. Juni 2024, 16:03
von bas_oldy
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

Re: Strings und Listen

Verfasst: Montag 3. Juni 2024, 16:50
von pillmuncher
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.

Re: Strings und Listen

Verfasst: Montag 3. Juni 2024, 17:54
von bas_oldy
Herzlichen Dank an pillmuncher.

Die Datei steht mit .txt im Verzeichnis, aber dein Tipp mit json funktioniert.

Re: Strings und Listen

Verfasst: Dienstag 4. Juni 2024, 08:51
von __blackjack__
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.