repräsentiert habe ich Strings, die wie dieses aussehen:einen String parsen, die eine Liste von Tupeln
"(8, 12.25), (13, 15), (16.75, 18.5)"
und ich möchte jeden von ihnen in eine Python-Datenstruktur konvertieren. Vorzugsweise eine Liste (oder Tupel) von Tupeln, die ein Paar von Float-Werten enthalten.
Ich könnte das mit eval("(8, 12.25), (13, 15), (16.75, 18.5)")
tun, die mir ein Tupel-Tupel gibt, aber ich denke nicht, naiv externen Informationen zu bewerten wäre eine kluge Entscheidung.
Also fragte ich mich, wie eine elegante pythonische Lösung aussehen könnte.
jfyi, nicht robust sein könnte, eine einzige mit Tupel in der Liste. Was wäre, wenn Sie "(8, 12.25)" eingegeben hätten. Dass Sie nur ein Tupel anstelle eines Tupels in einem Tupel erhalten würden. Ich glaube, dass Sie das gewünschte verschachtelte Tupel bekommen würden, wenn die Eingabe "(8, 12.25), "(beachte das nachgestellte Komma). Aber ich habe das nicht getestet, da ich auf diesem Rechner kein Python 2.6 installiert habe. – Tom
Guter Fang Tom. Ich habe noch nicht darüber nachgedacht und es wäre tatsächlich ein Problem in Ich werde das nach dem Parsing überprüfen, danke für's heads up. Leider die Methode ist in python2.5 nicht verfügbar, aber in meinem Fall ist das ok, da ich es in einem App-Engine-Datenimport-Skript verwende und nicht in der App-Engine selbst. – tosh
+1: Ich kannte "ast.literal_eval" vorher nicht - und es ist so praktisch! –