String in Listenform zu echter Liste?

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
Clython
User
Beiträge: 151
Registriert: Samstag 21. August 2004, 13:58
Wohnort: Schweiz, BE-2500

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???
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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
Clython
User
Beiträge: 151
Registriert: Samstag 21. August 2004, 13:58
Wohnort: Schweiz, BE-2500

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?
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

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
Clython
User
Beiträge: 151
Registriert: Samstag 21. August 2004, 13:58
Wohnort: Schweiz, BE-2500

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!
Clython
User
Beiträge: 151
Registriert: Samstag 21. August 2004, 13:58
Wohnort: Schweiz, BE-2500

split() heisst des Rätsels Lösung.

Wer sucht, der findet. Die Doku und die Suchfunktion von python.org sind aber echt das Letzte.
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Sorry, da hab ich dich nicht richtig verstanden ;)
Clython
User
Beiträge: 151
Registriert: Samstag 21. August 2004, 13:58
Wohnort: Schweiz, BE-2500

S*** happens. Deutsch schwer... : :?
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

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.
TUFKAB – the user formerly known as blackbird
Dookie
Python-Forum Veteran
Beiträge: 2010
Registriert: Freitag 11. Oktober 2002, 18:00
Wohnort: Salzburg
Kontaktdaten:

Naja, eval ist halt nicht ganz unproblematisch, da es beliebigen Code ausführen kann.


Gruß

Dookie
[code]#!/usr/bin/env python
import this[/code]
Clython
User
Beiträge: 151
Registriert: Samstag 21. August 2004, 13:58
Wohnort: Schweiz, BE-2500

Danke, aber Split erfüllt genau den Zweck, den ich brauche!
Antworten