替换Python内置的min函数
我需要写一个函数 min_in_list(munbers)
,这个函数接收一个数字列表,然后返回其中最小的数字。注意:不允许使用内置的 min
函数!
def min_in_list(numbers):
the_smallest = [n for n in numbers if n < n+1]
return the_smallest
有什么问题吗?
3 个回答
0
min = lambda n: return reduce(lambda x,y: (x>y) and return x or return y,n)
这个东西从来没有被测试过,使用的话要自己承担风险。
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
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)
你需要从一个列表中得到一个数字,而不是再得到一个列表。这就是reduce
函数的作用(当然,你也可以不使用reduce
来实现这个功能,但可以类比一下它的用法)。