列表。\u str\u

2024-04-20 15:20:20 发布

您现在位置:Python中文网/ 问答频道 /正文

Possible Duplicate:
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模块或按", "拆分,等等

有没有现成的功能可以做?你知道吗


Tags: 模块功能rean列表stringthatobject
3条回答

使用^{}

>>> 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]

最直接的方法是使用eval()。不过,这通常被认为是不好的做法,因为它会导致安全问题。你知道吗

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

对于Python3+,您需要从map迭代器生成列表:

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

相关问题 更多 >