递归Python函数在列表中查找最小数字

时间:2015-10-01 06:38:56

标签: python recursion

作为练习,我试图在Python中使用递归找到列表中的最低正数。这几乎可行,在 CircleOptions co = new CircleOptions(); co.center(point); co.radius(distance); co.strokeColor(getResources().getColor(R.color.light_blue)); co.strokeWidth(2.0f); co.fillColor(Color.parseColor("#8CFFFFFF")); googleMap.addCircle(co); 时找到2,但最终返回print(first)。有没有办法修复此代码或我是否在错误的轨道上?

None

编辑:此问题与其他问题不完全相同。寻找这种答案的人不会找到另一个,因为它以一种非常不同的方式提出类似的问题。 Stack Overflow具有有用的内容,但敌意和贬低是令人讨厌的。

1 个答案:

答案 0 :(得分:2)

问题是您忘记在第二个returnif个案例中添加else声明。

以下内容应该有效:

def find_lowest(lst):
    """Return the lowest positive number in a list."""
    def lowest(first, rest):
        # Base case
        if len(rest) == 0:
            return first
        if first > rest[0] or first < 0:
            return lowest(rest[0], rest[1:])
        else:
            return lowest(first, rest[1:])
    return lowest(lst[0], lst[1:])

a = [6, -4, 4, 8, -127, 5, 7, 2, 3, 9]