我应该写一个函数min_in_list(munbers)
,它取得一个 数字的列表并返回最小的一个。注意:不允许内置功能min
!替换python中的内置最小值函数
def min_in_list(numbers):
the_smallest = [n for n in numbers if n < n+1]
return the_smallest
怎么了?
我应该写一个函数min_in_list(munbers)
,它取得一个 数字的列表并返回最小的一个。注意:不允许内置功能min
!替换python中的内置最小值函数
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
太长太复杂 – Gusto 2010-10-24 16:05:58
min = lambda n: return reduce(lambda x,y: (x>y) and return x or return y,n)
从未测试,在你自己的风险。
你不喜欢它什么?它不运行吗?它是否得到异常?它会产生错误的答案吗?如果您要求我们帮助您完成作业,请提供详情。细节很重要。它表明你在学习。 – 2010-10-24 15:37:11
你有什么问题是n总是小于n + 1(它怎么可能不是?),所以你会得到整个列表。 – kindall 2010-10-24 15:43:41
你试过了吗?这是它是如何工作的: >>> min_in_list([1,2,3,4,5])输出 [1,2,3,4,5] – Gusto 2010-10-24 15:52:20