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

标签 python string list

我有一个字符串如下,

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/

相关文章:

python - 计算对象列表中有多少对象与属性值的方面相似

java - 如何创建一个显示字符串数组的方法

python - Python 文档字符串中的字符串操作

python - 无法从图表中打印每个歌曲的标题。获取AttributeError吗?

python - 尝试在按钮命令函数中访问我的 tkinter 小部件时出现 NameError

在 C 中使用 qsort() 后对获得奇怪的字符感到困惑

java - 通过比较日期从列表中删除项目

python: ValueError: 没有足够的值来解压(预期 2,得到 0)

python - 如何在 Python 中捕获自定义异常

python - Openshift:热部署的方法和缺点