Python -创建单独变量字典的更简单方法?
发布于 2021-02-02 23:20:56
我希望能够以字符串的形式获取变量的名称,但是我不知道Python是否具有这么多的自省功能。就像是:
>>> print(my_var.__name__)
'my_var'
我想这样做是因为我想把一堆变量变成一个像这样的字典:
bar = True
foo = False
>>> my_dict = dict(bar=bar, foo=foo)
>>> print my_dict
{'foo': False, 'bar': True}
但是我想要比这更自动的东西。
Python具有locals()
和vars()
,所以我猜有办法。
关注者
0
被浏览
156
1 个回答
-
您要这样做吗?
dict( (name,eval(name)) for name in ['some','list','of','vars'] )
例
>>> some= 1 >>> list= 2 >>> of= 3 >>> vars= 4 >>> dict( (name,eval(name)) for name in ['some','list','of','vars'] ) {'list': 2, 'some': 1, 'vars': 4, 'of': 3}
-
我已经很想这样做了。这种破解与rlotun的建议非常相似,但它是单行的,这对我很重要:
blah = 1 blah_name = [ k for k,v in locals().iteritems() if v is blah][0]
Python 3+
blah = 1 blah_name = [ k for k,v in locals().items() if v is blah][0]