可能重复:
将表示列表的字符串转换为实际的列表对象
有这样的字符串:
"[81, 102, 114, 132, 194, 210, 228, 317, 357, 358, 379, 396, 407, 417, 418, 420, 470, 471, 506, 526, 533, 538]"
如何轻松将其解析为相应的列表?
我知道我可以使用re
模块或拆分", "
等。
是否有任何现有的功能可以做到这一点?
可能重复:
将表示列表的字符串转换为实际的列表对象
有这样的字符串:
"[81, 102, 114, 132, 194, 210, 228, 317, 357, 358, 379, 396, 407, 417, 418, 420, 470, 471, 506, 526, 533, 538]"
如何轻松将其解析为相应的列表?
我知道我可以使用re
模块或拆分", "
等。
是否有任何现有的功能可以做到这一点?
>>> 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]
>>> 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]
最直接的方法是使用eval()。但是,这通常被认为是不好的做法,因为它可能导致安全问题。