我应该编写一个函数min_in_list(munbers)
,它会列出一个
数字并返回最小的数字。注意:不允许使用内置函数min
!
def min_in_list(numbers):
the_smallest = [n for n in numbers if n < n+1]
return the_smallest
怎么了?
答案 0 :(得分:1)
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
的情况下实现它,但与它类比)。
答案 1 :(得分:0)
你走了。这几乎可以肯定就像你能做到的一样简单。当你完成作业时,你甚至不必给我信任。
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
答案 2 :(得分:0)
min = lambda n: return reduce(lambda x,y: (x>y) and return x or return y,n)
从未经过测试,使用风险自负。