将字符串转换为它描述的列表

时间:2018-05-14 22:11:22

标签: python

说某人给我一个字符串:

[[A,B],[C,D]]

我想提取它描述的列表:

qstat

我该怎么做?

P.S。

A,B,C,D只是占位符,它们可以是数值或字符串。

2 个答案:

答案 0 :(得分:5)

要防止在将输入直接传递给ValueError: malformed string时引发ast.literal_eval,需要在字符串中的字符周围添加"

import ast, re
s = "[[A,B],[C,D]]"
new_s = ast.literal_eval(re.sub('\w+', '{}', s).format(*['"{}"'.format(i) for i in re.findall('\w+', s)]))

输出:

[['A', 'B'], ['C', 'D']]

答案 1 :(得分:2)

基于ABCD为数字(intfloat)或字符串({{ 1}}),你可以简单地使用:

str

例如:

l = eval("[[A,B],[C,D]]")