替换python中的内置min函数

替换python中的内置min函数,python,min,Python,Min,我应该在列表(munbers)中编写一个函数min\u,它接受 并返回最小的一个。注意:不允许使用内置函数min def min_in_list(numbers): the_smallest = [n for n in numbers if n < n+1] return the_smallest def最小值在列表中(数字): _最小值=[n表示n,如果n>>min_in_list([1,2,3,4,5])输出[1,2,3,4,5]@Gusto:“你试过了吗?”。不,那

我应该在列表(munbers)中编写一个函数
min\u,它接受
并返回最小的一个。注意:不允许使用内置函数
min

def min_in_list(numbers):
    the_smallest = [n for n in numbers if n < n+1]
    return the_smallest
def最小值在列表中(数字):
_最小值=[n表示n,如果n
怎么了

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
的情况下实现它,但与之类似)。

给您。这几乎可以肯定是你所能做到的最简单的事情。当你交作业时,你甚至不必给我学分

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

未经测试,使用风险自负

你不喜欢它的什么地方?它不跑吗?它有例外吗?它会产生错误的答案吗?如果你想让我们帮你做作业,请提供详细信息。细节很重要。这表明你在学习。你所拥有的东西的错误在于n总是小于n+1(怎么可能不呢?),所以你会得到整个列表。你试过了吗?下面是它的工作原理:>>>min_in_list([1,2,3,4,5])输出[1,2,3,4,5]@Gusto:“你试过了吗?”。不,那是你的工作。请用详细信息更新问题。请更新问题,说明(1)你想要什么,以及(2)你得到了什么你不喜欢的。细节很重要。请用详细信息更新您的问题。您的解决方案将不起作用,因为n始终小于n+1@古斯托:是的,但是你将如何向你的老师解释你是如何得出这个答案的?@我不需要解释任何事情-这是考试的准备,而不是像现在这样的“家庭作业”。
min = lambda n: return reduce(lambda x,y: (x>y) and return x or return y,n)