質問
私はのリストを取り機能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)
、ご自身の責任で使用することがテストされたことはありません。
所属していません StackOverflow