假设我有以下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是两个变量的向量;如果那可能吗?
感谢您的帮助!
答案 0 :(得分:3)
在函数开头解压缩args:
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)
答案 1 :(得分:2)
是的,这是可能的:
def _banana(x):
return banana(*x)
答案 2 :(得分:2)
你可以写:
def banana(vector):
x, y = vector
return exp(((-x**2/200))-0.5*(y+0.05*(x**2) - 100*0.05)**2)
答案 3 :(得分:1)
可能类似
def banana(x):
return exp(((-x[0]**2/200))-0.5*(x[1]+0.05*(x[0]**2) - 100*0.05)**2)
答案 4 :(得分:0)
是的,当然有可能。 您可以使用列表或元组。将两个变量放入列表或元组
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)
了解详情
答案 5 :(得分:-1)
你可以用列表写
def banana(x):
return exp(((-x[0]**2/200))-0.5*(x[1]+0.05*(x[0]**2) - 100*0.05)**2)