Python: Recursive function to find the largest number in the list

前端 未结 10 644
长情又很酷
长情又很酷 2020-12-10 21:04

I\'m trying to do a lab work from the textbook Zelle Python Programming

The question asked me to \"write and test a recursive function max() to find the

相关标签:
10条回答
  • 2020-12-10 21:13

    Here is my answer, with a one line of code :))

    def max_value(n_list):
        return n_list[0] if len(n_list) == 1 else max(n_list[0], max_value(n_list[1:]))
    
    0 讨论(0)
  • 2020-12-10 21:14

    One simple way would be to sort the list first then use indexing.

    Here's a function that would work:

    a = [1,233,12,34]
    
    def find_max(a):
        return sorted(a)[-1]
    
    0 讨论(0)
  • 2020-12-10 21:17

    These solutions fail after certain list size.

    This is a better version:

    def maximum2(a, n):
        if n == 1:
            return a[0]
        x = maximum2(a[n//2:], n - n//2)
        return x if x > a[0] else a[0]
    def maximum(a):
        return maximum2(a, len(a))
    
    maximum(range(99999))
    
    
    >>> 99998
    
    0 讨论(0)
  • 2020-12-10 21:18
    def Max(lis,maxx=-float("inf")):
    
        if len(lis) == 1:            #only one element in lis
            return maxx if maxx>lis[0] else lis[0]  #return lis[0] if it's greater than maxx
    
        else:
            m=lis[0] if lis[0]>maxx else maxx  # m = max(lis[0],maxx)
            return Max(lis[1:],m)              #call Max with lis[1:] and pass 'm' too
    
    print Max([1,2,39,4,5,6,7,8]) #prints 39
    print Max([1,2,3,4,5,6,7,8]) #prints 8   
    
    0 讨论(0)
  • 2020-12-10 21:18
    def find_max(arr):
      """find maximum number in array by recursion"""
      if arr == []: # if its an empty array
        return 0
      if len(arr) == 1: # if array has only one element
        return arr[0]
      else: # get max of first item compared to other items recursively
        return max(arr[0], find_max(arr[1:])) # 1: means all other excluding 0th element
    
    def main():
      print(find_max([2,3,5,6,7,1])) # will print max - 7
    
    if __name__ == "__main__":
      main()
    
    0 讨论(0)
  • 2020-12-10 21:18
    def getMaxNumber(numbers): 
        return 'N.A' if len(numbers) == 0 else max(numbers)
    
    0 讨论(0)
提交回复
热议问题