String teilweise auswerten
Verfasst: Freitag 21. November 2008, 11:13
Hallo allerseits,
ich weiß es gab schon viele Fragen bezüglich der Stringumwandlung und Auswertung. Dennoch möchte ich dieses Thema in die nächste Runde schicken. Ich möchte gern einen String, der eigentlich eine Formel mit vielen Koeffizienten darstellt verändern. In der ursprünglichen Darstellung sind alle Koeffiezienten durch ein Feld p aus gedrückt:
p = [1,3]
Das kommt als String an:
y = 'p[0] + x*p[1]..'
Diesen String möchte ich nur dahingehend auswerten, dass ich alle 'p' durch die zugehörigen Zahlen ersetze, aber das x einfach stehen lasse:
y = '1 + x*3'
Die einzige Lösung die ich bis jetzt gesehen habe, wäre den String der Reihe nach durchzugehen, die Indizes für 'p' und ']' zu erkennen und dann mithilfe von eval(y[0:4]) Teile des Strings umzuschreiben.
Meine Frage dazu lautet: Geht das nicht vielleicht einfacher, eleganter (aber ohne großen Aufwand)
mfg
p.s:
Die Sicherheit liegt mir dabei nicht am Herzen, und es wird an der Stelle schon eine fehlerfreie Eingabe des Strings vorraus gesetzt.
ich weiß es gab schon viele Fragen bezüglich der Stringumwandlung und Auswertung. Dennoch möchte ich dieses Thema in die nächste Runde schicken. Ich möchte gern einen String, der eigentlich eine Formel mit vielen Koeffizienten darstellt verändern. In der ursprünglichen Darstellung sind alle Koeffiezienten durch ein Feld p aus gedrückt:
p = [1,3]
Das kommt als String an:
y = 'p[0] + x*p[1]..'
Diesen String möchte ich nur dahingehend auswerten, dass ich alle 'p' durch die zugehörigen Zahlen ersetze, aber das x einfach stehen lasse:
y = '1 + x*3'
Die einzige Lösung die ich bis jetzt gesehen habe, wäre den String der Reihe nach durchzugehen, die Indizes für 'p' und ']' zu erkennen und dann mithilfe von eval(y[0:4]) Teile des Strings umzuschreiben.
Meine Frage dazu lautet: Geht das nicht vielleicht einfacher, eleganter (aber ohne großen Aufwand)
mfg
p.s:
Die Sicherheit liegt mir dabei nicht am Herzen, und es wird an der Stelle schon eine fehlerfreie Eingabe des Strings vorraus gesetzt.