2016-01-07 300 views
4

由於我的代碼中存在一個錯誤,我最近在python中發現了一個有趣的行爲。 這裏是發生了什麼的簡化版本:將轉換爲字符串的數組轉換回數組

a=[[1,2],[2,3],[3,4]] 
print(str(a)) 
console: 
"[[1,2],[2,3],[3,4]]" 

現在我想,如果我可以在字符串轉換爲字符串,表示與混合陣列的一個很好的方式轉換回Array.Is有數據類型("[1,'Hello',['test','3'],True,2.532]")包括整數,字符串,布爾值,浮點數組和數組?

+0

我希望您能意識到您發現的另一個問題是針對完全不同的編程語言,而其中的代碼在Python中完全不起作用。 – user2357112

+0

@ user2357112哦,謝謝。完全錯過了。我將刪除參考 – frameworker

回答

11

總是有每個人的老最喜歡ast.literal_eval

>>> import ast 
>>> x = "[1,'Hello',['test','3'],True,2.532]" 
>>> y = ast.literal_eval(x) 
>>> y 
[1, 'Hello', ['test', '3'], True, 2.532] 
>>> z = str(y) 
>>> z 
"[1, 'Hello', ['test', '3'], True, 2.532]" 
2

ast.literal_eval更好。只要提一下,這也是一種方法。

a=[[1,2],[2,3],[3,4]] 
string_list = str(a) 
original_list = eval(string_list) 
print original_list == a 
# True 
+0

我來自未來,沒有理由在這種情況下使用它。 – Rockybilly