如何将带有不带引号的字符串元素的python列表转换为正确的列表?

时间:2017-01-19 09:40:00

标签: python string list

考虑这个清单:

list1 = [home , school, ground, field] 

如您所见,list的元素是不带引号的字符串,因此这是一个无效的列表。有没有办法使用python将其转换为正确的列表?
列表应如下所示:

list1 = ['home' , 'school', 'ground', 'field'] 

1 个答案:

答案 0 :(得分:3)

是的,从技术上讲,你可以这样做:

done = False
while not done:
    try:
        list1 = [home , school, ground, field]
    except NameError as e:
        varname = str(e).split("'")[1]
        locals()[varname] = varname
    else:
        done = True

print(list1)
# ['home', 'school', 'ground', 'field']

但我不推荐它。

也许你可以编写一个装饰器,将每个NameError变成一个变量并重新运行代码运行的任何范围,希望是一个函数......但老实说......你只是去了把你的代码变成一个难以维护的复杂混乱。

此外,这段代码首先会如何编写?除非您的脚本是由其他程序生成的模板...在这种情况下,为什么不正确生成它们? :P