2012-12-18 29 views

回答

5

使用ast.literal_eval()

>>> import ast 
>>> s = "[81, 102, 114, 132, 194, 210, 228, 317, 357, 358, 379, 396, 407, 417, 418, 420, 470, 471, 506, 526, 533, 538]" 
>>> ast.literal_eval(s) 
[81, 102, 114, 132, 194, 210, 228, 317, 357, 358, 379, 396, 407, 417, 418, 420, 470, 471, 506, 526, 533, 538] 
1
>>> l = "[81, 102, 114, 132]" 
>>> map(int, l.strip("[]").split(", ")) 
[81, 102, 114, 132] 

对于Python 3+你需要从map迭代使列表:

>>> l = "[81, 102, 114, 132]" 
>>> list(map(int, l.strip("[]").split(", "))) 
[81, 102, 114, 132] 
0

最直接的方法是使用eval()。然而,这通常被认为是不好的做法,因为它可能导致安全问题。

+3

'ast.literal_eval'同样是直接的,没有任何安全问题。 –

+1

酷!我不知道那件事。 – PeterBB