我应该写一个函数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
,但可以类比)。
min = lambda n: return reduce(lambda x,y: (x>y) and return x or return y,n)
从未经过测试,使用风险自负。
干得好。这几乎可以肯定是尽可能简单。当你交作业时,你甚至不必给我功劳。
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