常量转化为变量(如何动态生成变量名)
问题描述
已知 lists=[‘A’, ‘B’, ‘C’, ‘D’],如何直接得到以字符串常量命名的变量–列表A,B,C,D ?
想法来源
最开始是在想如何批量创建新的空列表,并且自动命名!!
给变量命名实在是一件头疼事。。。
想法实现
在交流群里提问后,得到成功的答复
Python进阶:如何将字符串常量转为变量?
解决方案:
利用python内置函数exec()
lists = ['A', 'B', 'C', 'D']
for i in lists:
exec(i + ' = []')
#exec('{} = []'.format(i))
#exec(''.join(i, '= []')) False #join([*,*]) ;join() 连接的是列表中的所有元素
#exec(''.join([i, '= []']))
print(A, B, C, D)
#后是不同的字符串拼接方法 详见详解Python拼接字符串的七种方式
最后一种不太熟悉,join()函数拼接的是列表中的元素
利用globals()构造成字典中的key
知识点
literal 字面量,用于表达源代码中的固定值,如整数,浮点数,字符串等
动态执行代码~
遇到的新问题
如果字符串是中文,可以作为变量使用吗??