Seite 1 von 1

Liste aus String?

Verfasst: Dienstag 21. Oktober 2008, 17:59
von Brok
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 !

Verfasst: Dienstag 21. Oktober 2008, 18:12
von Leonidas
Reguläre Ausdrücke? ``(\d+?)`` könnte das sein was du suchst.

Fußball? Wie, wo, was?

Verfasst: Dienstag 21. Oktober 2008, 18:15
von numerix
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]

Verfasst: Dienstag 21. Oktober 2008, 19:54
von name
Hatten wir sowas nicht schon vor kurzem?

Verfasst: Dienstag 21. Oktober 2008, 21:05
von abgdf
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ß

Verfasst: Dienstag 21. Oktober 2008, 22:21
von numerix
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]

Verfasst: Mittwoch 22. Oktober 2008, 06:30
von Brok
Danke an alle !

Verfasst: Freitag 24. Oktober 2008, 09:19
von Poisos
@ 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!?