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 个回答
  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    您要这样做吗?

    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}
    


  • 面试哥
    面试哥 2021-02-02
    为面试而生,有面试问题,就找面试哥。

    我已经很想这样做了。这种破解与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]
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看