Seite 1 von 1
string nach dictionary
Verfasst: Sonntag 21. März 2004, 16:15
von Flavio
hilfe!!
ich habe einen string wie folgt:
'{'violett': ['purple'], 'blau': ['blue'], 'Haus': ['home', 'house'], 'Hand': ['hand']}'
sieht zwar aus wie ein dictionary, ist aber (leider) keiner
wie kann ich ihn in einen dictionary umwandeln???
Verfasst: Sonntag 21. März 2004, 16:53
von Milan
Hi. Ganz einfach mit eval zum Interpreter schicken und schauen, was der davon meint
Code: Alles auswählen
d=eval("{'violett': ['purple'], 'blau': ['blue'], 'Haus': ['home', 'house'], 'Hand': ['hand']}")
Milan
Verfasst: Sonntag 21. März 2004, 17:28
von Dookie
oder mit regular expressions, falls Du kein eval verwenden willst.
Code: Alles auswählen
import re
s = "{'violett': ['purple'], 'blau': ['blue'], 'Haus': ['home', 'house'], 'Hand': ['hand']}"
d = dict([(y[0][0],[z.strip().strip("'") for z in y[0][1].split(",")]) for y in [re.findall("'(.*?)'\s*:\s*\[(.*?)\]", x) for x in re.findall("('.*?':\s*\[.*?\])",s)]])
Gruß
Dookie
Verfasst: Dienstag 23. März 2004, 21:14
von Gast
Was ist schneller?
Verfasst: Dienstag 23. März 2004, 21:57
von Sneaker
ich würde mal auf das eval tippen da hier ja einfach nur der code im interpreter interpretiert werden muss....
Verfasst: Dienstag 23. März 2004, 23:11
von Dookie
Was spricht gegen testen, einfach in einer schleiffe 1000 mal das teil durchlaufen lassen und schaun was schneller ist.
Gibt ja sogar ein Pythonmodul für solche Tests.
Gruß
Dookie