Liste aus String?

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
Brok
User
Beiträge: 6
Registriert: Donnerstag 30. August 2007, 16:23

Dienstag 21. Oktober 2008, 17:59

Hallo

habe einen string der z.B. so aussieht.

Code: Alles auswählen

string = "['103', '35235', '342362362', '2']"
wie krieg ich die integer Werte in eine Liste ?

Grüße und noch einen schönen Fußballabend !
Leonidas
Administrator
Beiträge: 16024
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

Dienstag 21. Oktober 2008, 18:12

Reguläre Ausdrücke? ``(\d+?)`` könnte das sein was du suchst.

Fußball? Wie, wo, was?
My god, it's full of CARs! | Leonidasvoice vs Modvoice
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Dienstag 21. Oktober 2008, 18:15

Muss der String so aussehen? Ich vermute mal, dass da vorher schon was nicht optimal gemacht wurde ...

Ansonsten:

Code: Alles auswählen

>>> s = "['103', '35235', '342362362', '2']"
>>> [int(t.strip()[1:-1]) for t in s[1:-1].split(",")]
[103, 35235, 342362362, 2]
Benutzeravatar
name
User
Beiträge: 254
Registriert: Dienstag 5. September 2006, 16:35
Wohnort: Wien
Kontaktdaten:

Dienstag 21. Oktober 2008, 19:54

Hatten wir sowas nicht schon vor kurzem?
Ohloh | Mein Blog | Jabber: segfaulthunter@swissjabber.eu | asynchia – asynchrone Netzwerkbibliothek

In the beginning the Universe was created. This has made a lot of people very angry and has been widely regarded as a bad move.
abgdf

Dienstag 21. Oktober 2008, 21:05

Von hinten durch die Brust ins Auge:

Code: Alles auswählen

#!/usr/bin/env python

import os

string = "['103', '35235', '342362362', '2']"

f = open("temp", "w")
f.write("a = " + string + "\n")
f.write("for i in a: print i\n")
f.close()

os.chmod("temp", 0755)
f2 = os.popen("python ./temp")
mylist = f2.readlines()
f2.close()

for i in range(len(mylist)):
    mylist[i] = int(mylist[i].rstrip("\n"))

for i in mylist:
    print i
:lol:

Kann man vielleicht "os.open()" auch irgendwie eine "virtuelle" Datei zuordnen, so daß man nicht gleicht wirklich auf die Festplatte zu schreiben braucht ?
Z.B. so eine Art Ramdisk einrichten ?

Gruß
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

Dienstag 21. Oktober 2008, 22:21

Und hier noch der Einzeiler für die Freunde von eval() ... :)

Code: Alles auswählen

>>> [int(s) for s in eval("['103', '35235', '342362362', '2']")]
[103, 35235, 342362362, 2]
Brok
User
Beiträge: 6
Registriert: Donnerstag 30. August 2007, 16:23

Mittwoch 22. Oktober 2008, 06:30

Danke an alle !
Poisos
User
Beiträge: 6
Registriert: Freitag 24. Oktober 2008, 08:41

Freitag 24. Oktober 2008, 09:19

@ abgdf
Vielleicht hilft das: Such' mal in der Python Hilfe nach "tempfile" oder "BufferedWriter".
Ich bin mit allerdings nicht sicher, ob es das ist, was Du willst!?
Antworten