python 将字符串作为变量名

枫铃3年前 (2021-09-30)Python274

1、使用字符串指代变量名。

比如说,有两个变量 a="bbb"和bbb={“c”:1},引用a如何得到{“c”:1},也就是a的值’bbb’所代表的变量bbb的值。
google了下,查到http://www.douban.com/group/topic/2193745/上的以下四种方式能够将字符串转作变量,分别是:

>>> exec('bed=5')
>>> bed
5

>>> exec('bedict={}')
>>> bedict
{}

globals()['abc'] = 6

>>> globals()['bed'+str(3)] = {}
>>> bed3
{}

setattr(__builtins__, 'abc', 9)
__import__('sys')._getframe(0).f_globals['abc'] = 27

四种都可以实现,那么,对于引用a如何得到{“c”:1},则应该是:>>> a=‘bbb’

'''
遇到问题没人解答?小编创建了一个Python学习交流QQ群:778463939
寻找有志同道合的小伙伴,互帮互助,群里还有不错的视频学习教程和PDF电子书!
'''
>>> bbb={"c":1}
>>> exec('a=%s' % a)
>>> a
 
{"c": 1}

即可实现。有没其他方法了?

另外,若想把exec的字符串’a=%s’ % a中的a动态改变,而不是指定a,那岂不要先获得变量a的名字。就是第2个问题。

2、从变量名获得其字符串

比如说,变量a=‘bbb’,一般引用a后结果是a的值’bbb’,那我该如何得到a的名字字符串’a’? 有没必要?

相关文章

python 归并排序,合并有序数组,逆序对个数

归并排序,合并有序列表,求逆序对个数 之所以将标题中三者放一起是因为它们有密不可分的关系. 合并有序列表 定义一个空列表 li 用来存放排序后的值;定义两...

Python类的使用总结

Python是一个面向对...

python中 time、datetime、random模块

1. 自定义模块 1.1 模块分类 模块的分类: 1.内置模块(标准库)——python解释器自带的.py文件(模块); 2...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。