【问题标题】:create python dictionary with same function but different parameters [duplicate]创建具有相同功能但参数不同的python字典[重复]
【发布时间】:2021-12-29 16:12:14
【问题描述】:

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

我想向现有字典添加一个具有特定功能 (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”)。

有什么想法吗?

【问题讨论】:

  • 是的!谢谢!

标签: python function dictionary parameters


【解决方案1】:

谢谢@Chris:

使用初始化的 lambda 参数:

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

这解决了我的问题!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-12-25
    • 2020-12-18
    • 2021-12-07
    • 2019-11-29
    • 2022-11-28
    • 1970-01-01
    • 2019-03-12
    相关资源
    最近更新 更多