开发者

Replace the built-in min functions in python

I should write a function min_in_list(munbers), which takes a list of numbers and returns the smallest one. NOTE: built-in function min is NOT allowed!

def min_in_list(numbers):
    the_smallest = [n for n in numbers if n < n+1]
    return the_smallest
开发者_JAVA百科

What's wrong?


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)

You have to produce 1 number from list, not just another list. And this is work for reduce function (of course, you can implement it without reduce, but by analogy with it).


Here you go. This is almost certainly about as simple as you could make it. You don't even have to give me credit when you turn the assignment in.

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)

Never been tested, use at your own risk.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜