替换Python内置的min函数

-1 投票
3 回答
1253 浏览
提问于 2025-04-16 06:00

我需要写一个函数 min_in_list(munbers),这个函数接收一个数字列表,然后返回其中最小的数字。注意:不允许使用内置的 min 函数!

def min_in_list(numbers):
    the_smallest = [n for n in numbers if n < n+1]
    return the_smallest

有什么问题吗?

3 个回答

0
min = lambda n: return reduce(lambda x,y: (x>y) and return x or return y,n)

这个东西从来没有被测试过,使用的话要自己承担风险。

0

好了,这几乎是你能做到的最简单的版本了。你在提交作业的时候甚至不需要给我致谢。

import itertools
import functools
import operator

def min(seq, keyfun=operator.gt):
    lt = lambda n: functools.partial(keyfun, n)

    for i in seq:
        lti = lt(i)
        try:
            next(itertools.ifilter(lti, seq))
        except:
            return i
1
def min_of_two(x, y):
    if x >= y: return x
    else: return y

def min_in_list(numbers):
    return reduce(min_of_two, numbers)

你需要从一个列表中得到一个数字,而不是再得到一个列表。这就是reduce函数的作用(当然,你也可以不使用reduce来实现这个功能,但可以类比一下它的用法)。

撰写回答