python - 从变量列表创建字典

标签 python dictionary

我正在寻找一种无需显式写入键即可创建字典的方法。 我想创建一个函数来获取变量的数量并创建一个字典,其中变量名是键,它们的值是变量值。

而不是编写以下函数:

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/

相关文章:

python - 根据另一个数据框中的数据量删除数据框中的行

python - 使用 Ruby 或 Python 创建静态图形文件(png、gif、jpg)

python - 如何使用 Python 中的面向对象编程来构建机器学习项目?

使用 tkinter 的 Python 多线程

C# DropDownList 以字典作为数据源

python - 在 python 中解析以分号分隔的文件以创建 CSV

c# - 使用结构作为字典的键和奇怪的事情正在发生

C# 合并 2 个字典

python - 用 Pandas reshape csv : joining two subsets of df

python - ** 之后的参数必须是映射,而不是 SQLAlchemy 数据库中的 str