我在Python中有以下字符串:
x = "['good', 'bad', 'something', 'another']"
我想将其转换为列表y
,这样y [0]会给我good
,y [1]会给我bad
。
我尝试了很多方法,比如创建一个for循环并尝试x [0]或x [0] [0],但我达到的只是第一个字符,而不是整个单词。我也尝试过:
y = list(x)
但没有帮助。
有没有办法在Python上做到这一点?
答案 0 :(得分:3)
使用ast
模块
>>> import ast
>>> y = ast.literal_eval(x)
['good', 'bad', 'something', 'another']
答案 1 :(得分:1)
不使用任何模块。使用str.strip
删除括号,然后使用str.split
<强>实施例强>
x = "['good', 'bad', 'something', 'another']"
x = map(str.strip, x.strip("[]").replace("'", "").split(","))
<强>输出:强>
['good', 'bad', 'something', 'another']
答案 2 :(得分:1)
x = eval("['good', 'bad', 'something', 'another']")
eval命令可以做到这一点,但如果你不确定你在做什么,请避免使用它。
例如,如果您尝试将可运行代码放在该字符串中,则eval命令将运行它,可能会破坏您的系统或将其打开到外部攻击。我假设您正在制作一个不涉及网络或外部来源访问的玩具脚本
答案 3 :(得分:0)
您可以在函数中使用字符串构建
x = "['good', 'bad', 'something', 'another']"
y = x.replace("\"", "").replace("[", "").replace("]","").replace("'", "").split(',')
你会得到结果:
y[0]
为good