将字符串列表转换为python中的列表

Gop*_*opi 5 python string list

我有一个字符串如下

val = '["10249/54","10249/147","10249/187","10249/252","10249/336"]'
Run Code Online (Sandbox Code Playgroud)

我需要解析它并取/之后的值,并放入列表,如下所示

['54','147','187','252','336']
Run Code Online (Sandbox Code Playgroud)

我的代码[a[a.index('/')+1:] for a in val[1:-1].split(',')]

输出['54"', '147"', '187"', '252"', '336"']

它也有双引号“这是错误的。我尝试如下

c = []
for a in val[1:-1].split(','):
    tmp = a[1:-1]
    c.append(tmp[tmp.index('/')+1:])
Run Code Online (Sandbox Code Playgroud)

输出:

['54', '147', '187', '252', '336']
Run Code Online (Sandbox Code Playgroud)

有什么更好的方法吗?

Pri*_*usa 3

您可以使用以下命令在一行中完成此操作literal_eval

from ast import literal_eval

val = ['54','147','187','252','336']
a = [i.split('/')[-1] for i in literal_eval(val)]

print(a)
Run Code Online (Sandbox Code Playgroud)

输出:

['54', '147', '187', '252', '336']
Run Code Online (Sandbox Code Playgroud)

literal_eval()将字符串转换为列表,然后i.split('/')[-1]获取斜杠后面的内容。