使用变量中的字典作为函数的一组参数

时间:2015-12-07 04:13:24

标签: python function arguments

我需要一个简单的方法来将所需的参数传递给一个接受多个参数的函数。

def sample1(arg1=0,arg2=0,arg3=0 ... ...  argn=0)

参数词典

argument_dictionary={'arg1':0,'arg4':1}

我想遍历argument_dictionary并仅将arg1和arg4传递给sample1为

sample1(arg1=0,arg4=1)

3 个答案:

答案 0 :(得分:7)

这是通过keyword argument unpacking完成的,其中“字典可以提供关键字参数”:

sample1(**argument_dictionary)

演示:

>>> def sample1(arg0=0, arg1=0, arg2=0, arg3=0, arg4=0):
...   print(locals())
... 
>>> argument_dictionary = {'arg0': 1, 'arg4': 4}
>>> sample1(**argument_dictionary)
{'arg0': 1, 'arg1': 0, 'arg2': 0, 'arg3': 0, 'arg4': 4}

答案 1 :(得分:2)

我有点不确定这是不是你的意思,但你可以在函数调用中做** argument_dictionary以满足你的需要。它会为你扩展出k,v对。

答案 2 :(得分:0)

只需传递一个参数哈希。在你的子功能中,遍历哈希。

def sample1(argument_dictionary) :
  for(key, value) in argument_dictionary.items():
    ...

示例电话:

sample({'arg1': 0, 'arg4': 1})
sample({'arg1': 0})

argument_dictionary = {'arg1': 0, 'arg4': 1}
sample(argument_dictionary)