Python 以编程方式将多个参数及其名称作为键添加到dict的最快方法

Python 以编程方式将多个参数及其名称作为键添加到dict的最快方法,python,python-3.x,Python,Python 3.x,在许多项目中,我发现自己经常将变量分配给dict,其中变量的名称是键,变量的值是dict中的值。例如: def create_results_dict(age, sex, ...): res = {} res['age'] = age res['sex'] = sex ... return res 我想知道,以动态/编程方式完成这些任务的pythonic和高效(就执行速度而言)方法是什么?也就是说,这样就不必手动编写所有作业(在我的示例中,第3-5行)

在许多项目中,我发现自己经常将变量分配给dict,其中变量的名称是键,变量的值是dict中的值。例如:

def create_results_dict(age, sex, ...):
    res = {}
    res['age'] = age
    res['sex'] = sex
    ...
    return res
我想知道,以动态/编程方式完成这些任务的pythonic和高效(就执行速度而言)方法是什么?也就是说,这样就不必手动编写所有作业(在我的示例中,第3-5行)

编辑:参数只是一个或多个位置或命名参数,即具有名称和值的变量。我想,从根本上说,问题是,我是否可以通过编程方式接收参数/变量的名称(从传递给函数的参数列表中)?

def create\u results\u dic(年龄、性别、时间、名称、国家):
args=创建结果dic.\uuuuuu代码\uuuuuu.co\uuargcount
项目=创建结果dic.\uuuuu代码\uuuuuu.co\u变量名
res={}
对于项目[:args]中的x:
res[x]=评估(x)
返回res
如果您不介意使用非常不安全的
eval()
,这是一种解决方案。它遍历范围中的第一个
args
变量,其中
args
是传递给函数的args数。它使用每个参数作为键的名称,并使用
eval
获取该变量的值

当然,这并不假设您传递的所有参数都将添加到dict中。

简单方法使用:


输出:

{'marital_status': 'single', 'sex': 'male', 'age': 34}

好。。。我想您可以这样做:
def create_result_dict(**kwargs):返回kwargs
,然后将其用作
d=create_result_dict(age=5,sex='M',name='Bob')
或类似的东西,但是您也可以使用
d=dict(age=5,sex='M',name='Bob')
或类似的…?关于编辑。。。使用
**kwargs
是否不能满足这一要求,或者您是否决定在此处仅使用位置参数?这在一些黑客中是可行的,但是解包关键字参数已经是内置的并且非常有效,因为它是Python中参数传递机制的一部分。相关:这看起来是一种非常糟糕的编写
res=dict(locals())
的方法check是一个很好的方法,因为它在使用
super()
@aranfey的方法中过滤掉了
\uuuu class\uuuuuuu
单元格——谢谢,因为我在讨论是否需要在您的提示之前使用它。
{'marital_status': 'single', 'sex': 'male', 'age': 34}