python矢量输入函数到multiinpu的转换

2024-06-01 00:07:20 发布

您现在位置:Python中文网/ 问答频道 /正文

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

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

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

g(x,y) = x*y

fcn_translator(f)
    # intelligent code here
    return g

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


Tags: 函数returnherecode原因向量形式translator
1条回答
网友
1楼 · 发布于 2024-06-01 00:07:20

看起来您需要一个函数,它接受两个参数,将它们组合成一个向量,并调用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)

相关问题 更多 >