替换python中的内置min函数

时间:2010-10-24 15:33:42

标签: python min

我应该编写一个函数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 :(得分: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)

您必须从列表中生成1个数字,而不仅仅是另一个列表。这适用于reduce函数(当然,您可以在不使用reduce的情况下实现它,但与它类比)。

答案 1 :(得分: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

答案 2 :(得分:0)

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

从未经过测试,使用风险自负。