如何调用表达式并为其赋值

2024-09-27 09:35:59 发布

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

例如,我有一本包含许多表达式的词典

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倍。这个太大了


Tags: lambda函数return定义表达式def词典aa
2条回答

您可以使用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)

字典存储值,而不是表达式

最接近的方法是存储函数:

g = { 'asd': lambda x, y: x + y, 'sss': lambda x, y: x - y }

之后你可以给他们打电话:

print(g['asd'](2, 3))  # 5

相关问题 更多 >

    热门问题