不使用min函数的python中的最小值[python 2.7]

时间:2015-05-18 21:31:32

标签: python-2.7

def minimum(x):
    mini = x[0]
    for i in x[0:]:
        if i < mini:
            mini = i
        else:
            mini = x[0]
    return (mini)
b = [1,2,3,4,5]
c= [3,6,2,7,9]
print minimum(b)
print minimum(c)

我的代码适用于我以前测试的第一个列表(b)(它返回1作为最小值),但是对于第二个列表(c)它返回(3)并且我无法弄清楚为什么。谢谢!

:编辑:想出来,删除&#34;否则&#34; for循环的一部分修复了问题

1 个答案:

答案 0 :(得分:2)

删除else子句:

def minimum(x):
    mini = x[0]
    for i in x[0:]:
        if i < mini:
            mini = i
    return mini

每次找到大于目前发现的miminum的值时,您不希望将最小值设置为第一个值...

如果没有else,您会记住到目前为止找到的最低值。对于不低于此值的值,无需执行任何其他操作。