题
我应该写一个函数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