我有很多表达式的字典,例如
g={'asd':x+y,'sss':x-y}
我想定义两个函数aa和bb,这些函数返回这些表达式的求值。
g={'asd':x+y,'sss':x-y}
def aa(x,y):
return g['asd']
def bb(x,y):
return g['sss']
aa(2,3)
但是,我无法使它正确。
有人知道如何在python中执行此操作吗?
此外,实际上我有很多变量,而不仅仅是x,y
,但是有x1,x2,x3 ... x100之类的变量。
我也有很多功能。
如果要这样做:
g = { 'asd': lambda x, y: math.exp(x)**y, 'sss': lambda x, y: x - y }
def aa(x,y):
return g['asd'](x,y)
def bb(x,y):
return g['sss'](x,y)
bb(2,3)
我将不得不复制x1,x2,x3 ... x100 100次。这太大了。
答案 0 :(得分:4)
字典存储值,而不存储表达式。
您最能做的就是存储函数:
g = { 'asd': lambda x, y: x + y, 'sss': lambda x, y: x - y }
然后您可以稍后致电给他们:
print(g['asd'](2, 3)) # 5
答案 1 :(得分:0)
您可以使用eval:
g={'asd':'x+y','sss':'x-y'}
def aa(x,y):
return eval(g['asd'])
def bb(x,y):
return g['sss']
aa(2,3)