最近我发现了 Python 中一个有趣的行为,原因是我的代码中有一个 bug。以下是发生的简化版本:
a=[[1,2],[2,3],[3,4]]
print(str(a))
console:
"[[1,2],[2,3],[3,4]]"
现在我想知道是否可以将字符串转换回数组。有没有一种好的方法可以将代表混合数据类型数组( "[1,'Hello',['test','3'],True,2.532]"
),包括整数、字符串、布尔值、浮点数和数组的字符串转换回数组?
最近我发现了 Python 中一个有趣的行为,原因是我的代码中有一个 bug。以下是发生的简化版本:
a=[[1,2],[2,3],[3,4]]
print(str(a))
console:
"[[1,2],[2,3],[3,4]]"
现在我想知道是否可以将字符串转换回数组。有没有一种好的方法可以将代表混合数据类型数组( "[1,'Hello',['test','3'],True,2.532]"
),包括整数、字符串、布尔值、浮点数和数组的字符串转换回数组?
总有人钟爱的老朋友 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]"
ast.literal_eval更好。只是提一下,这也是一种方法。
a=[[1,2],[2,3],[3,4]]
string_list = str(a)
original_list = eval(string_list)
print original_list == a
# True