python如何以现有字符串给新变量命名?
问题:
现有字符串列表['a','b','c','d'],如何创建变量名为a,b,c,d的变量?
解决⽅式:
1、globals()
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)为其值,即为变量的内容。
2、exec()
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在本质上并不是字符串常量,⽽是⼀个在运⾏时运算求值的表达式。
参考资料:
如何将字符串常量转化为变量 :
python的globals()使⽤:
字符串函数gets怎么重新定义Python格式化字符串f-string概览:
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论