【问题标题】:Find the greatest number in a list of numbers在数字列表中找到最大的数字
【发布时间】:2010-06-22 03:58:10
【问题描述】:

是否有任何简单的方法或函数来确定 python 列表中的最大数字?我可以直接编码,因为我只有三个数字,但是如果我能用内置函数或其他东西说出最大的数字,它会减少代码的冗余。

【问题讨论】:

    标签: python numbers max


    【解决方案1】:

    max()

    highest = max(1, 2, 3)  # or max([1, 2, 3]) for lists
    

    【讨论】:

    【解决方案2】:

    您可以使用带有多个参数的内置函数max()

    print max(1, 2, 3)
    

    或列表:

    list = [1, 2, 3]
    print max(list)
    

    或者实际上任何可迭代的东西。

    【讨论】:

    • 将变量命名为默认的内置 python 关键字是不好的,它会覆盖实际的关键字,(你必须知道):-)
    【解决方案3】:

    这种方法不使用max()函数

    a = [1,2,3,4,6,7,99,88,999]
    max_num = 0
    for i in a:
        if i > max_num:
            max_num = i
    print(max_num)
    

    另外,如果你想找到结果最大值的索引,

    print(a.index(max_num))
    

    直接使用函数 max()

    max() 函数返回具有最高值的项,或者在一个可迭代对象中具有最高值的项

    示例:当您必须找到整数/数字的最大值时

    a = (1, 5, 3, 9)
    print(max(a))
    >> 9
    

    例子:当你有字符串时

    x = max("Mike", "John", "Vicky")
    print(x)
    >> Vicky
    

    它基本上返回具有最高值的名称,按字母顺序排列。

    【讨论】:

    • 为什么你永远不能使用 max 函数?
    • 所以我为那些准备面试的人写了这篇文章,问题是在不使用 max 函数的情况下找到列表的最大值。如果你觉得它适合面试请点赞
    • 如果你也需要最大值的索引?然后,您只需在 for 行中包含 idx var。
    • 不要使用max 作为变量的名称,因为它是内置函数的名称。
    • 这是不正确的,如果列表中只有负数,结果将是你为max_num设置的0。
    【解决方案4】:

    使用max()

    >>> l = [1, 2, 5]
    >>> max(l)
    5
    >>> 
    

    【讨论】:

      【解决方案5】:

      max是python中的内置函数,用于从序列中获取最大值,即(列表、元组、集合等)

      print(max([9, 7, 12, 5]))
      
      # prints 12 
      

      【讨论】:

        【解决方案6】:

        您实际上可以对其进行排序:

        sorted(l,reverse=True)
        

        l = [1, 2, 3]
        sort=sorted(l,reverse=True)
        print(sort)
        

        你得到:

        [3,2,1]
        

        但如果想得到最大的做:

        print(sort[0])
        

        你得到:

        3
        

        如果第二个最大值:

        print(sort[1])
        

        等等……

        【讨论】:

        • 对列表进行排序是一个复杂的操作 O(n log n),而不是仅仅获得最大值 O(n)
        【解决方案7】:
            #Ask for number input
        first = int(raw_input('Please type a number: '))
        second = int(raw_input('Please type a number: '))
        third = int(raw_input('Please type a number: '))
        fourth = int(raw_input('Please type a number: '))
        fifth = int(raw_input('Please type a number: '))
        sixth = int(raw_input('Please type a number: '))
        seventh = int(raw_input('Please type a number: '))
        eighth = int(raw_input('Please type a number: '))
        ninth = int(raw_input('Please type a number: '))
        tenth = int(raw_input('Please type a number: '))
        
            #create a list for variables
        sorted_list = [first, second, third, fourth, fifth, sixth, seventh, 
                      eighth, ninth, tenth]
        odd_numbers = []
        
            #filter list and add odd numbers to new list
        for value in sorted_list:
            if value%2 != 0:
                odd_numbers.append(value)
        print 'The greatest odd number you typed was:', max(odd_numbers)
        

        【讨论】:

        • 1) 没有理由不做 my_list = sorted([int(raw_input('Please type a number')) for _ in xrange(10)) 而不是输入额外的东西。 2)您有一个名为 sorted_list 的列表,但您实际上并未对其进行排序 3)问题中没有任何内容询问仅过滤掉奇数 4)这提供了什么,而 5 年前的先前答案没有(除了回答没有被问到的问题,而且方式不太优雅)
        猜你喜欢
        • 2014-03-18
        • 2012-11-20
        • 1970-01-01
        • 2020-09-04
        • 2019-03-13
        • 1970-01-01
        • 2016-12-17
        相关资源
        最近更新 更多