可能重复:
Converting a string that represents a list, into an actual list object
有这样的字符串:
"[81, 102, 114, 132, 194, 210, 228, 317, 357, 358, 379, 396, 407, 417, 418, 420, 470, 471, 506, 526, 533, 538]"
如何轻松地将其解析到相应的列表中?
我知道我可以使用re
模块或按", "
分割等。
有没有现成的功能呢?
答案 0 :(得分:5)
>>> 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 :(得分: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]
答案 2 :(得分:0)
最直接的方法是使用eval()。但这通常被认为是不好的做法,因为它可能导致安全问题。