Python将向量输入函数转换为多输入

时间:2018-07-24 18:55:41

标签: python wrapper

我有一个接受矢量输入的函数,例如

f(x) = x[0]*x[1]

我想要一个具有此功能并创建新功能的功能:

g(x,y) = x*y

fcn_translator(f)
    # intelligent code here
    return g

有人知道该怎么做吗?以前做过这个吗?这个问题的原因是我有一个python包,可以优化形式为f(x,y ...)的函数,但是我调用的函数作用于矢量。

1 个答案:

答案 0 :(得分:1)

好像您想要一个带有两个参数的函数,将它们组合成一个向量,然后调用f

def g1(x, y):
    return f([x, y])

作为更通用的解决方案,函数g2可以接受任意数量的参数,将它们组合成一个向量,然后调用f

def g2(*x):
    return f(x)

最后,由于f需要向量的前两个元素,因此该函数至少需要两个参数:

def g3(x, y, *rest):
    return f((x, y) + rest)