创建具有相同功能但不同参数的python字典



嗨,这让我困惑了一段时间:

我想在现有的字典中添加一个具有特定功能(myfun(但对同一功能使用不同参数的新密钥:

dct = {}
params = {'a':[10,20],'b':[-10,10]}
def myfun(x,y):
return (x+y)
print(myfun(*params['a'])) #desired output for dct['a'](1,1) = 30
print(myfun(*params['b'])) #desired output for dct['b'](1,1) = 0
for key in params.keys():
dct[key]=lambda x,y: myfun(params[key][0]*x,params[key][1]*y)

print(dct['a'](1,1)) # should be 30
print(dct['b'](1,1)) # should be 0 

但显然它只保留最后一个密钥(在本例中为"b"(。

有什么想法吗?

谢谢@Chris:

使用初始化的lambda参数:

dct[key]=lambda x,y,xx=params[key][0],yy=params[key][1]: myfun(xx*x,yy*y)

这解决了我的问题!

最新更新