python - 如何在每次迭代中使用不同的函数
问题描述
我不想为每个函数编写同一行(如第一个代码块所示),而是想在循环的帮助下调用每个函数(如第二个代码块所示)
我想要做的是:
import numpy as np
A = np.arange(9).reshape(3,3)
B = np.array([3,4,6,3,2,7,0,1,7]).reshape(3,3)
#################
def calc_stats(mat):
print(mat.max())
print(mat.min())
print(mat.mean())
calc_stats(A)
calc_stats(B)
但是通过使用循环,我可以在每次迭代时更改函数的名称。
与此类似的东西:
import numpy as np
A = np.arange(9).reshape(3,3)
B = np.array([3,4,6,3,2,7,0,1,7]).reshape(3,3)
#################
def calc_stats(mat):
for names in ["mean", "max", "min"]:
print(mat.names())
calc_stats(A)
calc_stats(B)
当然,上面的代码不起作用,因为变量不能用作函数名,但是有什么方法可以实现我想要做的吗?
这个问题在我上次发布时已关闭,因为它似乎与这个问题相似,但我发现这篇文章中提供的答案有点难以理解或与我的问题相关。
解决方案
您可以保留要调用的函数列表,在提供的参数上调用每个函数
def calc_stats(mat):
for f in [np.mean, np.max, np.min]:
print(f(mat))
输出
>>> calc_stats(A)
4.0
8
0
>>> calc_stats(B)
3.6666666666666665
7
0
推荐阅读
- typescript - 来自 Typescript 中的 Promise 的意外推断类型
- c++ - 链表数组的析构函数
- javascript - 正则表达式在控制台中给出错误但在 C# 中给出
- node.js - 我的 discord.js 代码有什么问题?
- php - 我想在 PHP Codeigniter 中将多个数组插入 XML
- css - 视觉工作室捆绑
- rust - 如何创建一个允许非消费和消费功能的构建器
- javascript - 如何在 reactjs 中上传文件并将文件路径保存在 JSON 服务器中?
- javascript - 我的 React 应用程序在 iPhone 上的某个阶段显示一个空白页面。在其他任何地方(甚至是 MacOS 上的 Safari),它都能按预期工作
- c# - 无法从 EventHub 读取应用程序属性