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

python convert vector input function to multiinput

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

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

我想要一个接受这个函数并创建一个新函数的函数:

g(x,y) = x*y

fcn_translator(f)
    # intelligent code here
    return g

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

看起来您想要一个带有两个参数的函数,将它们组合成一个向量,然后调用 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)