python - 了解 maxmin 函数

标签 python python-3.x

我正在查看 Learning Python 中的函数,这个让我理解起来有点困难,想知道是否有人可以帮助我更好地理解它,更具体地说是 if test(arg, res) 当我运行第一个函数时,我把什么作为第一个参数并不重要,然后第二个参数必须是一个列表,它只是将列表按写入的方式吐出。我很困惑当你组合这些函数并将它们打印在一起时它如何给出最大值和最小值。

def minmax(test, *args):
    res = args[0]
    for arg in args[1:]:
        if test(arg, res):
            res = arg
    return res
def lessthan(x, y): return x < y
def grtrthan(x, y): return x > y
print(minmax(lessthan, 4, 2, 1, 5, 6, 3))
print(minmax(grtrthan, 4, 2, 1, 5, 6, 3))

最佳答案

您似乎误解了starred function argument作品。当您将函数调用为 minmax(something, [1, 2, ...]) 时,args 将成为一个元素等于 [1, 2、...]。因此,循环体永远不会被执行,并且 test 的值并不重要。该函数应该以 minmax(something, 1, 2, ...) 的形式调用。这样 args 即可获取值 (1, 2, ...),并且循环会遍历其元素。

澄清:答案基于您所写的内容。您的代码片段是正确的并且完全按照预期工作。

关于python - 了解 maxmin 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34583089/

相关文章:

python-3.x - 一组微分方程中的条件分段函数

python - 裁剪图像后,如何找到新的边界框坐标?

python - 如何在不使用 OpenCV Python 中的拆分功能的情况下获取图像的单一颜色 channel ?

python - 如何在 Panda Data 框中合并两列时删除 nan 值?

python - 如何反射(reflect)具有 BINARY_DOUBLE 类型列的 oracle 数据库

python - 如何减小从 Pydub 导出的 .wav 文件的大小

python - 列表相对于另一列的频率分布

python - 学习机器学习的第一个好的实现是什么?

python - 使用 rrule 将日期分配给相关月份

python - python 的 any() 函数背后的技巧是什么?