假设有一个函数func()
,它需要两个参数a
和b
。在Python中,是否有一种技巧可以将包含这两个值的单个列表mylist
传递给该函数?
def myfunc(a, b):
return a+b
myfunc([1, 2])
如果您完全确定自己一直在调用相同的函数并知道它需要多少个参数,那么可以像这样做:
mylist = [1, 2]
a, b = mylist
myfunc(a, b)
但是如果您有需要提供给某些函数的列表,并且每个列表都有不同数量的参数呢?您可以为每个函数编写单独的代码行,将列表解包成变量并将它们传递到相应的函数中,但是如果Python内置了一些东西,可以传递单个列表而不是单个参数值(在事先确保列表具有相应数量的值的情况下),那么看起来会更好,最重要的是需要更少的代码行。
mydict = {'a': 1, 'b': 2}
myfunc(**mydict)
- Casey Kuball