2016-11-04 5 views
0

誰もこの変換で私を助けることができますか?私は文字列からのリストが必要です。strと後ろにPythonのリスト

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

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

私はこれを取得する必要があります:backToList = [[1,2]、[2.3,59]] Thxをします。

+0

あなたはeval'場合 '' –

+1

典型的な 'のeval(y)を使用することができます。例のように、代わりに 'ast.literal_eval()'を使用してください。 –

答えて

1

あなたはevalよりも安全である、このためast.literal_evalを使用したい:

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

Thx、それはなぜより安全ですか? –

+0

@CrazyDeveloperこの場合、違いはありませんが、 'eval'には多くの脆弱性があります。 http://nedbatchelder.com/blog/201206/eval_really_is_dangerous.htmlを参照してください。 – brianpck

関連する問題