将列表形式的Python字符串转换为列表

时间:2018-05-28 10:24:01

标签: python list

我在Python中有以下字符串:

x = "['good', 'bad', 'something', 'another']"

我想将其转换为列表y,这样y [0]会给我good,y [1]会给我bad

我尝试了很多方法,比如创建一个for循环并尝试x [0]或x [0] [0],但我达到的只是第一个字符,而不是整个单词。我也尝试过:

y = list(x)

但没有帮助。

有没有办法在Python上做到这一点?

4 个答案:

答案 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