-1

我应该写一个函数min_in_list(munbers),它接受一个数字列表并返回最小的一个。min注意:不允许使用内置功能!

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

怎么了?

4

3 回答 3

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,但可以类比)。

于 2010-10-24T15:50:07.980 回答
0
min = lambda n: return reduce(lambda x,y: (x>y) and return x or return y,n)

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

于 2011-03-25T22:46:23.383 回答
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
于 2010-10-24T16:02:21.897 回答