Seite 1 von 1

String in Listenform zu echter Liste?

Verfasst: Montag 22. November 2004, 22:34
von Clython
Tja wie mache ich das?
Wenn ich nämlich z.B. ["Abinadab\n","1\n","0.06\n"] in eine Variable einlese:

Code: Alles auswählen

 liste = ["Abinadab\n","1\n","0.06\n"]
Dann kann ich die Variable nicht bearbeiten wie eine Liste, sonder nur wie ein String. Gibts da ein Befehlt wie str() oder float(), der das macht, oder muss ich das selber coden???

Verfasst: Montag 22. November 2004, 22:40
von jens

Code: Alles auswählen

liste = ["Abinadab\n","1\n","0.06\n"]
StrListe = "".join(liste)
print StrListe
Ergebnis:
Abinadab
1
0.06
Die Sachen stehen untereinander, wegen den "\n" ;)

Also der String sieht eigentlich so aus:

Code: Alles auswählen

Abinadab\n1\n0.06

Verfasst: Montag 22. November 2004, 22:59
von Clython
Hab das Programm so ungeschrieben, dass die Strings genauso geschrieben werden, wie sie ausgegeben werden, wenn ich die Liste mit einer Variable unifiziere und sie dann per print ausgebe. Geht immer noch nicht.

Wozu ist eigentlich dieses StrListe = "".join(liste) gut?

Verfasst: Montag 22. November 2004, 23:02
von jens
Clython hat geschrieben:Wozu ist eigentlich dieses StrListe = "".join(liste) gut?
Damit wird jeder Eintrag in der Liste zu einem String zusammen gefasst... Ist eigentlich ganz praktisch, da man ein "Trennzeichen" angeben kann!

Noch ein Beispiel:

Code: Alles auswählen

liste = [ "eins", "zwei", "drei" ]
print "X".join(liste)

Code: Alles auswählen

einsXzweiXdrei

Verfasst: Montag 22. November 2004, 23:12
von Clython
Praktisch ja, aber tut das umgekehrte von dem, was ich will! Wie verwandle ich einen String in Listenform in eine echte Liste, one, dass ich die einzelnen Einträge aus dem String aus und in die Liste einlesen muss (re.findall() und insert()).

Und kommt mir jetzt nicht mit list(). Das tut nämlich auch nicht was ich will!

Verfasst: Montag 22. November 2004, 23:28
von Clython
split() heisst des Rätsels Lösung.

Wer sucht, der findet. Die Doku und die Suchfunktion von python.org sind aber echt das Letzte.

Verfasst: Dienstag 23. November 2004, 00:02
von jens
Sorry, da hab ich dich nicht richtig verstanden ;)

Verfasst: Dienstag 23. November 2004, 00:12
von Clython
S*** happens. Deutsch schwer... : :?

Verfasst: Dienstag 23. November 2004, 06:59
von mitsuhiko
Du kannst einen String in Listenform ja wieder in eine liste verwandeln

Code: Alles auswählen

liste = eval(string)
Dann kannst du sie normal weiterberabeiten.

Verfasst: Dienstag 23. November 2004, 13:35
von Dookie
Naja, eval ist halt nicht ganz unproblematisch, da es beliebigen Code ausführen kann.


Gruß

Dookie

Verfasst: Dienstag 23. November 2004, 14:42
von Clython
Danke, aber Split erfüllt genau den Zweck, den ich brauche!