質問

私はのリストを取り機能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