我有一个字符串如下,
val = '["10249/54","10249/147","10249/187","10249/252","10249/336"]'
我需要解析它并获取/之后的值并将其放入列表中,如下所示
['54','147','187','252','336']
我的代码:[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:])
输出:
['54', '147', '187', '252', '336']
有没有更好的方法来做到这一点?
最佳答案
您可以使用 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)
输出:
['54', '147', '187', '252', '336']
literal_eval()
将您的字符串转换为列表,然后 i.split('/')[-1]
获取斜线后的内容。
关于python - 将字符串列表转换为python中的列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49765985/