我应该写一个函数min_in_list(munbers),这需要的列表 数字并返回最小的一个。注:内置功能min是不允许的。

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

怎么了?

有帮助吗?

解决方案

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,但如果用它比喻)。

其他提示

在这里你去。这几乎可以肯定是一样简单,你可以做到这一点。你甚至不用给我的信用,当你打开的任务。

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
min = lambda n: return reduce(lambda x,y: (x>y) and return x or return y,n)

从未被测试,使用您自己的风险。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top