Trouvez le plus grand nombre dans une liste de nombres

91

Existe-t-il un moyen ou une fonction simple de déterminer le plus grand nombre dans une liste python? Je pourrais simplement le coder, car je n'ai que trois chiffres, mais cela rendrait le code beaucoup moins redondant si je pouvais dire le meilleur avec une fonction intégrée ou quelque chose comme ça.

Chris Foster
la source

Réponses:

18

Vous pouvez utiliser la fonction intégrée max()avec plusieurs arguments:

print max(1, 2, 3)

ou une liste:

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

ou en fait tout ce qui peut être itéré.

cletus
la source
3
Il n'est pas bon de nommer les variables un mot-clé python intégré par défaut, qui écrase le mot-clé réel, (vous devez le savoir) :-)
U10-Forward
15

Cette approche est sans utiliser la max()fonction

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)

Aussi si vous voulez trouver l'index du max résultant,

print(a.index(max_num))

Approche directe en utilisant la fonction max ()

La fonction max () renvoie l'élément avec la valeur la plus élevée ou l'élément avec la valeur la plus élevée dans un itérable

Exemple: quand vous devez trouver max sur des entiers / nombres

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

Exemple: lorsque vous avez une chaîne

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

Il renvoie essentiellement le nom avec la valeur la plus élevée, classée par ordre alphabétique.

Chetan_Vasudevan
la source
2
Pourquoi ne pourriez-vous jamais utiliser la fonction max?
Chris Foster
3
J'ai donc écrit ceci pour les personnes qui se préparent à l'entrevue, où la question est de trouver le maximum d'une liste sans utiliser la fonction max.Si vous vous sentez bien pour une interview, veuillez voter pour
Chetan_Vasudevan
2
Si vous avez également besoin de l'indice du max? Vous incluriez alors simplement le var idx dans la ligne for.
Kit Plummer
1
N'utilisez pas maxle nom d'une variable car c'est le nom d'une variable intégrée.
wjandrea
11

Utilisation max()

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

max est une fonction intégrée en python, qui est utilisée pour obtenir la valeur maximale d'une séquence, c'est-à-dire (liste, tuple, ensemble, etc.)

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

# prints 12 
Sanjay Idpuganti
la source
2

Vous pouvez en fait le trier:

sorted(l,reverse=True)

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

Vous obtenez:

[3,2,1]

Mais toujours si vous voulez obtenir le maximum, faites:

print(sort[0])

Vous obtenez:

3

si deuxième max:

print(sort[1])

etc...

U10-avant
la source
1
Trier une liste est une opération plus complexe O (n log n) que simplement obtenir la valeur maximale 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
la source
2
1) il n'y a aucune raison de ne pas faire my_list = sorted ([int (raw_input ('Please type a number')) for _ in xrange (10)) versus taper des trucs supplémentaires. 2) vous avez une liste appelée sorted_list mais vous ne la triez pas réellement 3) Il n'y a rien dans la question qui demande de filtrer les nombres impairs seulement 4) Qu'est-ce que cela signifie que les réponses précédentes d'il y a 5 ans n'ont pas (en plus question qui n'a pas été posée, et de manière moins élégante)
Foon