2013-09-16 37 views
1

我想将字符串转换为列表,作为新手不知道最简单的方法是做什么。将字符串(拆分)转换为列表?

具有列表,例如:

strList = "[[1,2,3],[4,5,6]]" 

有没有简单地分割上述字符串的任何Python函数? 我试图使用方法.split() 但它返回

>>> list("[[1,2,3],[4,5,6]]".split()) 
['[[1,2,3],[4,5,6]]'] 

我想获得是

result = [[1,2,3],[4,5,6]] 

所以result[0]将返回[1,2,3]result[0][1]将返回2

回答

9

使用ast.literal_eval

>>> import ast 
>>> ast.literal_eval("[[1,2,3],[4,5,6]]") 
[[1, 2, 3], [4, 5, 6]] 
>>> result = _ 
>>> result[0] 
[1, 2, 3] 
>>> result[0][1] 
2 
+0

作为一个侧面说明,'ast.literal_eval'只认Python语法的一个子集。但它有一个邪恶的内置双胞胎:[eval](http://docs.python.org/2/library/functions.html#eval)。在这种情况下,第一种方式更好。 – Cyrille

3

另一种方法是使用json

import json 
result = json.loads('[[1,2,3],[4,5,6]]')