如何在python中传递要在另一个函数中执行的函数列表及其所有参数?

如何在python中传递要在另一个函数中执行的函数列表及其所有参数?,python,Python,我有一个函数及其参数列表,如下所示: (func1, *arg1), (func2, *arg2),... for func, arg* in (list of funcs, args): func(arg*) 我想将它们传递到另一个函数中,以如下方式执行它们: (func1, *arg1), (func2, *arg2),... for func, arg* in (list of funcs, args): func(arg*) 如何在python中实现这一点?我已经尝试

我有一个函数及其参数列表,如下所示:

(func1, *arg1), (func2, *arg2),...
for func, arg* in (list of funcs, args):
   func(arg*)
我想将它们传递到另一个函数中,以如下方式执行它们:

(func1, *arg1), (func2, *arg2),...
for func, arg* in (list of funcs, args):
   func(arg*)

如何在python中实现这一点?我已经尝试了几个,但它不喜欢同时解包和*arg。

您可以这样做,只需使用元组列表,其中first是函数名,rest是参数

def a(*args,**kwargs):
    print 1

list_f = [(a,1,2,3)]

for f in list_f:
    f[0](f[1:])
您可以使用

例如,假设调用列表中项目的格式为
(函数,arg1,arg2,…)
。换句话说,
item[0]
是您的函数,而
item[1://code>是应该为函数提供的参数

def f1(x1):
    print("f1 {0}".format(x1))

def f2(x1,x2):
    print("f2 {0} {1}".format(x1,x2))

for data in ((f1,5),(f2,3,4)):
    data[0](*data[1:])
# output:
#   f1 5
#   f2 3 4

假设函数和参数在元组中是分开的

def squarer(*args):
    return map(lambda x: x*2, args)

def subtracter(*args):
    return map(lambda x: x-1, args)

funcAndArgs = [(squarer, [1,2,3,4]), (subtracter, [1,2,3,4])]

for func, args in funcAndArgs:
    print func(*args)
输出:

[2, 4, 6, 8]
[0, 1, 2, 3]

除了
arg*
在Python中是无效语法之外,您还有什么确切的问题?“它不喜欢”有点模糊。另外,请显示原始列表的确切格式。您的解决方案使用一个参数(一个元组)调用函数。