Encontre o maior número em uma lista de números

91

Existe alguma maneira ou função fácil de determinar o maior número em uma lista de python? Eu poderia apenas codificá-lo, já que tenho apenas três números, no entanto, tornaria o código muito menos redundante se eu pudesse dizer o melhor com uma função integrada ou algo assim.

Chris Foster
fonte

Respostas:

18

Você pode usar a função embutida max()com vários argumentos:

print max(1, 2, 3)

ou uma lista:

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

ou na verdade qualquer coisa iterável.

cletus
fonte
3
Não é bom nomear variáveis ​​como uma palavra-chave python embutida padrão, que sobrescreve a palavra-chave real, (você deve saber disso) :-)
U10-Forward
15

Esta abordagem é sem o uso de max()função

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)

Além disso, se você quiser encontrar o índice do máximo resultante,

print(a.index(max_num))

Abordagem direta usando a função max ()

função max () retorna o item com o valor mais alto, ou o item com o valor mais alto em um iterável

Exemplo: quando você tem que encontrar o máximo em inteiros / números

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

Exemplo: quando você tem string

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

Ele basicamente retorna o nome com o valor mais alto, ordenado alfabeticamente.

Chetan_Vasudevan
fonte
2
Por que você não conseguiria usar a função max?
Chris Foster
3
Então, eu escrevi isso para aquelas pessoas que se preparam para a entrevista, onde a questão é encontrar o máximo de uma lista sem usar a função max. Se você acha que é bom para a entrevista, por favor,
vote positivamente
2
Se você precisar do índice do máximo também, talvez? Você então incluiria apenas idx var na linha for.
Kit Plummer
1
Não use maxcomo o nome de uma variável porque é o nome de um interno.
wjandrea
11

Usar max()

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

max é uma função embutida em python, que é usada para obter o valor máximo de uma sequência, ou seja (lista, tupla, conjunto, etc.)

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

# prints 12 
Sanjay Idpuganti
fonte
2

Você pode realmente classificá-lo:

sorted(l,reverse=True)

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

Você obtém:

[3,2,1]

Mesmo assim, se quiser chegar ao máximo, faça:

print(sort[0])

Você obtém:

3

se o segundo máximo:

print(sort[1])

e assim por diante...

U10-Forward
fonte
1
Classificar uma lista é uma operação mais complexa O (n log n) do que apenas obter o valor máximo O (n)
Allan
-6
    #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)
Shalbert
fonte
2
1) não há razão para não fazer my_list = Sorted ([int (raw_input ('Por favor, digite um número')) for _ in xrange (10)) em vez de digitar coisas extras. 2) você tem uma lista chamada lista_classificada, mas na verdade não a classifica 3) Não há nada na pergunta perguntando sobre a filtragem de números ímpares apenas 4) O que isso fornece que as respostas anteriores de 5 anos atrás não forneceram (além de responder a um pergunta que não foi feita e de uma forma menos elegante)
Foon,