Foro de elhacker.net

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
  1. #asi es como lo quiero tener
  2. path = [(37.429, -122.145),(37.428, -122.145),(37.427, -122.145),(37.427, -122.146),(37.427, -122.146)]
  3. #pero tengo esto
  4. str #con valor: "[(37.429, -122.145),(37.428, -122.145),(37.427, -122.145),(37.427, -122.146),(37.427, -122.146)] "
  5.  


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
  1. texto= "[(37.429, -122.145),(37.428, -122.145),(37.427, -122.145),(37.427, -122.146),(37.427, -122.146)] "
  2. print(eval(texto))
  3.  


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
  1. texto= "[(37.429, -122.145),(37.428, -122.145),(37.427, -122.145),(37.427, -122.146),(37.427, -122.146)] "
  2. prueba = eval(texto)
  3. print(prueba)
  4. print(type(prueba))
  5. print(prueba[0])
  6. print(type(prueba[0]))
  7.  

2- más completa, con módulo, segura:
Código
  1. import ast
  2. texto= "[(37.429, -122.145),(37.428, -122.145),(37.427, -122.145),(37.427, -122.146),(37.427, -122.146)] "
  3. otra_prueba = ast.literal_eval(texto)
  4. print(otra_prueba)
  5. print(type(otra_prueba))
  6. print(otra_prueba[1])
  7. print(type(otra_prueba[1]))
  8.  

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