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

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
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

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 (former) Modvoice
Benutzeravatar
numerix
User
Beiträge: 2696
Registriert: Montag 11. Juni 2007, 15:09

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:

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

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

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

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

@ 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