考虑这个清单:
list1 = [home , school, ground, field]
如您所见,list的元素是不带引号的字符串,因此这是一个无效的列表。有没有办法使用python将其转换为正确的列表?
列表应如下所示:
list1 = ['home' , 'school', 'ground', 'field']
答案 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