Test Foro de elhacker.net SMF 2.1

Programación => Scripting => Mensaje iniciado por: тαптяα en 27 Octubre 2015, 01:29 AM

Título: Supongo que esto será facil [Python]
Publicado por: тαптяα en 27 Octubre 2015, 01:29 AM
Hola a todos,

tengo una dudilla rápida de Python, veréis tengo una cadena con posiciones y quiero que esa cadena pase a ser una lista de tuplas, os pongo código:

Código (python) [Seleccionar]

#asi es como lo quiero tener
path = [(37.429, -122.145),(37.428, -122.145),(37.427, -122.145),(37.427, -122.146),(37.427, -122.146)]
#pero tengo esto
str #con valor: "[(37.429, -122.145),(37.428, -122.145),(37.427, -122.145),(37.427, -122.146),(37.427, -122.146)] "


Si sabeis una manera rápida de hacerlo, si no he pensado ir pasando uno a uno a esa lista pero quizás es complicarme

muchas gracias

Saludos
Título: Re: Supongo que esto será facil [Python]
Publicado por: tincopasan en 27 Octubre 2015, 03:58 AM
la verdad no entiendo lo que querés decir, por lo que creo te referís al algo como esto:
Código (python) [Seleccionar]

texto= "[(37.429, -122.145),(37.428, -122.145),(37.427, -122.145),(37.427, -122.146),(37.427, -122.146)] "
print(eval(texto))
Título: Re: Supongo que esto será facil [Python]
Publicado por: тαптяα en 27 Octubre 2015, 10:05 AM
Quiero pasar de la cadena de texto a la lista de tuplas, pero que el formato quede exactamente el mismo
Título: Re: Supongo que esto será facil [Python]
Publicado por: tincopasan en 27 Octubre 2015, 11:28 AM
eso pensé! por eso el código!¿lo probaste?
hay 2 formas:
1- simple,sin módulos, insegura:

Código (python) [Seleccionar]

texto= "[(37.429, -122.145),(37.428, -122.145),(37.427, -122.145),(37.427, -122.146),(37.427, -122.146)] "
prueba = eval(texto)
print(prueba)
print(type(prueba))
print(prueba[0])
print(type(prueba[0]))


2- más completa, con módulo, segura:
Código (python) [Seleccionar]

import ast
texto= "[(37.429, -122.145),(37.428, -122.145),(37.427, -122.145),(37.427, -122.146),(37.427, -122.146)] "
otra_prueba = ast.literal_eval(texto)
print(otra_prueba)
print(type(otra_prueba))
print(otra_prueba[1])
print(type(otra_prueba[1]))


más claro que eso no sé.
Título: Re: Supongo que esto será facil [Python]
Publicado por: тαптяα en 27 Octubre 2015, 20:05 PM
Muchas gracias


la segunda opción me ha funcionado.

Resuelto!

Gracias

Saludos