????现有字符串列表[‘a‘,‘b‘,‘c‘,‘d‘],如何创建变量名为a,b,c,d的变量?
mylist = [‘a‘,‘b‘,‘c‘,‘d‘]
for i in mylist:
globals()[i] = mylist.index(i)
????python 使用叫做名字空间的东西来记录变量的轨迹。名字空间是一个字典 ,它的键就是字符串形式的变量名字,它的值就是变量的实际值。全局 (模块级别) 名字空间可以通过内置的 globals 函数来访问。globals()[i]= mylist.index(i)
相当于在全局空间(模块级别)添加了一个键值对(变量)‘i‘:mylist.index(i)
,i
为其键,即变量的名字,mylist.index(i)
为其值,即为变量的内容。
for i in mylist:
exec(f"{i} = mylist.index(i)")
????exec(object, globals, locals)
,object:字符串或代码对象。globals:可选。包含全局参数的字典。locals:可选。包含局部参数的字典。exec
执行传入的代码对象。
????括号内的内容使用了python3.6引入的f-string的方法,即格式化字符串常量(formatted string literals,f-string在形式上是以 f 或 F 修饰符引领的字符串(f‘xxx‘ 或 F‘xxx‘),以大括号 {} 标明被替换的字段;f-string在本质上并不是字符串常量,而是一个在运行时运算求值的表达式。
如何将字符串常量转化为变量 : http://www.imooc.com/article/283240
python的globals()使用:https://www.cnblogs.com/shengulong/p/9800594.html
Python格式化字符串f-string概览:https://blog.csdn.net/sunxb10/article/details/81036693
原文:https://www.cnblogs.com/lhjc/p/14585179.html