tengo cadenas que se parecen a éste:analizar una cadena que representa una lista de tuplas
"(8, 12.25), (13, 15), (16.75, 18.5)"
y me gustaría convertir cada uno de ellos en una estructura de datos pitón. Preferiblemente una lista (o tupla) de tuplas que contiene un par de valores flotantes.
Podría hacerlo con eval("(8, 12.25), (13, 15), (16.75, 18.5)")
, lo que me da una tupla de tuplas, pero no creo que la evaluación ingenua de información externa sea una decisión acertada.
Así que me pregunté cómo sería una elegante solución pitonica.
jfyi, esto podría no ser robusta como para tener una sola tupla en la lista. ¿Qué pasaría si ingresases? "(8, 12.25)". Que obtendrías solo una tupla en lugar de una tupla en una tupla. Creo que obtendrías la tupla anidada deseada si la entrada fuera "(8, 12.25), "(tenga en cuenta la coma final). Pero no probé esto ya que no tengo instalado Python 2.6 en esta máquina. – Tom
Buena captura Tom. Todavía no pensaba en eso y en realidad sería un problema en mi situación. Voy a verificar eso después del análisis. Gracias por el aviso. Desafortunadamente, el método no está disponible en python2.5 pero en mi caso está bien ya que lo estoy usando en un script de importación de datos de motor de aplicación y no en el motor de la aplicación. – tosh
+1: No sabía 'ast.literal_eval' antes, ¡y es muy útil! –