将两个变量的函数编写为一个变量中的函数

Writing a function of two variables as a function in one variable

假设我有以下 2 个变量的函数 -

def banana(x,y):
    return exp(((-x**2/200))-0.5*(y+0.05*(x**2) - 100*0.05)**2)

我想把它写成 -

def banana(x):

这里的x是两个变量的向量;如果可以的话?

感谢您的帮助!

可能类似于

def banana(x):
    return exp(((-x[0]**2/200))-0.5*(x[1]+0.05*(x[0]**2) - 100*0.05)**2)

是的,这是可能的:

def _banana(x):
    return banana(*x)

你可以用列表来写

def banana(x):
    return exp(((-x[0]**2/200))-0.5*(x[1]+0.05*(x[0]**2) - 100*0.05)**2)

你可以这样写:

def banana(vector):
    x, y = vector
    return exp(((-x**2/200))-0.5*(y+0.05*(x**2) - 100*0.05)**2)

解压函数开头的参数:

def banana(args):
    x, y = args
    return exp(((-x**2/200))-0.5*(y+0.05*(x**2) - 100*0.05)**2)

或者直接在定义行中:

def banana((x, y)):
    return exp(((-x**2/200))-0.5*(y+0.05*(x**2) - 100*0.05)**2)

是的,当然有可能。 您可以使用列表或元组。把你的两个变量放到一个列表或元组中

x = [5, 7] # A list
x = (5, 7) # A tuple

你的功能应该是这样的:

def banana(x):
    x, y = x # Unpacking
    return exp(((-x**2/200))-0.5*(y+0.05*(x**2) - 100*0.05)**2)

https://docs.python.org/3.6/tutorial/datastructures.html

查看更多