我正在寻找一种无需显式写入键即可创建字典的方法。 我想创建一个函数来获取变量的数量并创建一个字典,其中变量名是键,它们的值是变量值。
而不是编写以下函数:
def foo():
first_name = "daniel"
second_name = "daniel"
id = 1
return {'first_name':first_name, 'second_name':second_name}
我想用函数得到相同的结果:
create_dict_from_variables(first_name, second_name)
有什么办法吗?
最佳答案
你不能不写至少变量名,但可以这样写简写:
>>> foo = 1
>>> bar = 2
>>> d = dict(((k, eval(k)) for k in ('foo', 'bar')))
>>> d
{'foo': 1, 'bar': 2}
或作为函数:
def createDict(*args):
return dict(((k, eval(k)) for k in args))
>>> createDict('foo','bar')
{'foo': 1, 'bar': 2}
您还可以使用 globals()
代替 eval()
:
>>> dict(((k, globals()[k]) for k in ('foo', 'bar')))
关于python - 从变量列表创建字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9495262/