Python - Convertir cadena en lista de enteros

 
Vista:
sin imagen de perfil
Val: 3
Ha disminuido su posición en 22 puestos en Python (en relación al último mes)
Gráfica de Python

Convertir cadena en lista de enteros

Publicado por epicteto (46 intervenciones) el 25/03/2014 19:13:53
Hola

tengo una cadena de caracteres en una variable de texto con este aspecto:

variable="[23,45,46]"

parece una lista pero insisto, es una cadena de caracteres. Lo que quiero hacer es precisamente convertirlo en una lista de números enteros con las cifras que refleja y que quede así --> lista=[23,45,46]

Sé que puedo hacerlo con la funcion list(cadena) y luego a base de bucles y condicionales iterando por cada carácter y eliminando algunos... pero lo que consulto es si a alguien se le ocurre una manera más sencilla y elegante de hacerlo con alguna instrucción o función que yo desconozca

muchas gracias
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

Convertir cadena en lista de enteros

Publicado por Aquiles (1 intervención) el 26/03/2014 04:07:52
Hola, Prueba usar json.

Un ejemplo.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
# -*- coding: utf-8 -*-
 
 
import json
 
# De cadena a lista.
variable = "[23, 45, 46]"
lista = json.loads(variable)
print lista, type(lista)
 
# De lista a cadena.
cadena = json.dumps(lista)
print cadena, type(cadena)
 
# Diccionario.
variable = '{"a":23, "b":45, "c":46}'
diccionario = json.loads(variable)
print diccionario, type(diccionario)

Espero que te sirva.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 3
Ha disminuido su posición en 22 puestos en Python (en relación al último mes)
Gráfica de Python

Convertir cadena en lista de enteros

Publicado por epicteto (46 intervenciones) el 26/03/2014 07:35:57
Bueno, es justo lo que necesitaba. Desconocía este módulo

Muchas gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar