2016-11-04 13 views
0

kann mir jemand mit dieser Umwandlung helfen? Ich brauche eine Liste von String.Python-Liste zu str und zurück

x = [[1,2],[2.3,59]] 
y = str(x) 

backToList = list(y) 
backToList = ['[', '[', '1', ',', ' ', '2', ']', ',', ' ', '[', '2', '.', '3', ',', ' ', '5', '9', ']', ']'] 

Ich brauche dies zu erhalten: BackToList = [[1,2], [2.3,59]] Thx.

+0

können Sie 'eval (y) verwenden' –

+1

typischen 'eval' Fall. Wie das Beispiel sagt, verwenden Sie stattdessen den Befehl 'ast.literal_eval()'. –

Antwort

1

Sie wollen ast.literal_eval dafür verwenden, die sicherer als eval ist:

>>> x = [[1,2],[2.3,59]] 
>>> y = str(x) 
>>> 
>>> import ast 
>>> ast.literal_eval(y) 
[[1, 2], [2.3, 59]] 
+0

Thx, warum ist das sicherer? –

+0

@CrazyDeveloper In diesem Fall macht das keinen Unterschied, aber "eval" hat viele Sicherheitslücken, die ausgenutzt werden können, wenn sie auf Benutzereingaben ausgeführt werden. Siehe http://nedbatchelder.com/blog/201206/eval_really_is_dangerous.html – brianpck

Verwandte Themen