【问题标题】:map dictionary of function names and arguments函数名称和参数的映射字典
【发布时间】:2020-06-26 19:02:47
【问题描述】:

我必须执行大量具有各种不同参数的函数。如何将函数映射到带有参数列表的函数字典

而不是:

a = np.array([1,2,3,4,5,6])

np.mean(a)
np.quantile(a,q=0.5)
np.quantile(a,q=0.5)

解压并执行字典中的所有组合:

f_dict = { 'maximum':{} ,
          'quantile': [{'q':"0.5"},{'q':'0.95'}]}
 

【问题讨论】:

  • 你有一个 str 对象的字典映射到其他 dict 和 list 对象....你的字典中没有函数...你意思在你的字典中使用函数?这个字典有什么意义?
  • 下面的答案应该会给你想要的结果,但除非你想从配置文件或一些外部源加载字典,否则我建议你坚持使用常规函数调用以获得更好的可读性。

标签: python numpy dictionary


【解决方案1】:

首先,我推荐使用实际函数作为字典的键。另外,我建议将字典值形式化为字典列表。

如果你做了这两个更改,那么你可以使用类似这样的东西:

f_dict = { np.mean:[{}] ,
          np.quantile: [{'q':0.25}, {'q':0.5}]}

print([func(a, **arg) for func, args in f_dict.items() for arg in args])
#[3.5, 2.25, 3.5]

【讨论】:

  • 我相信 OP 想要创建一个结构,让他/她可以一次应用所有带有参数的函数。与 map() 类似,但具有额外的可变参数
猜你喜欢
  • 2018-03-27
  • 1970-01-01
  • 2020-08-10
  • 1970-01-01
  • 1970-01-01
  • 2022-08-16
  • 1970-01-01
  • 2015-01-24
  • 2023-02-04
相关资源
最近更新 更多