2016-01-07 395 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