gpt4 book ai didi

python - 给定 Python 中的变量名列表,我如何创建一个以变量名作为键(变量值)的字典?

转载 作者:太空狗 更新时间:2023-10-29 17:14:25 25 4
gpt4 key购买 nike

我有一个变量名列表,如下所示:

['foo', 'bar', 'baz']

(我最初问的是如何转换变量列表。请参阅下面 Greg Hewgill 的回答。)

我如何将其转换为字典,其中键是变量名称(作为字符串),值是变量的值?

{'foo': foo, 'bar': bar, 'baz': baz}

现在我重新提出这个问题,我想到了:

d = {}
for name in list_of_variable_names:
d[name] = eval(name)

可以改进吗?

更新,回答我为什么要这样做的问题(在评论中):

我经常发现自己使用 % 运算符来插入包含名称和值的字典的字符串。通常字符串中的名称只是局部变量的名称。所以(有了下面的答案)我可以做这样的事情:

message = '''Name: %(name)s
ZIP: %(zip)s

Dear %(name)s,
...''' % dict((x, locals()[x]) for x in ['name', 'zip'])

最佳答案

忘记过滤 locals()!您提供给格式化字符串的字典允许包含未使用的键:

>>> name = 'foo'
>>> zip = 123
>>> unused = 'whoops!'
>>> locals()
{'name': 'foo', 'zip': 123, ... 'unused': 'whoops!', ...}
>>> '%(name)s %(zip)i' % locals()
'foo 123'

有了新的f-string feature在 Python 3.6 中,不再需要使用 locals():

>>> name = 'foo'
>>> zip = 123
>>> unused = 'whoops!'
>>> f'{zip: >5} {name.upper()}'
' 123 FOO'

关于python - 给定 Python 中的变量名列表,我如何创建一个以变量名作为键(变量值)的字典?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/230896/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com